关于javascript:为数组新增一个flat方法浏览器不支持的话可以将一个数组打平并支持传入最深的层级数得到打平对应层级的新数组

例如:[1, [2, 3, [4, 5, [6, 7], 8]], 9].flat(2) 失去 [1, 2, 3, 4, 5,[ 6, 7],8,9]

间接上代码:


Array.prototype.flat = function (dep = 1) {
      return this.reduce((acc, val) => {
        return acc.concat(Array.isArray(val) && dep > 0 ? val.flat(--dep) : Array.isArray(val) ? [val] : val)
      }, [])
    }
// 验证一下
    let arr = [1, [2, 3, [4, 5, [6, 7], 8]], 9].flat(2)
    console.log(arr, 'arr-leepoo')
   

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理