一、简介
用于将嵌套的数组“拉平”,变成一维数组。该方法返回一个新数组,对原数据没有影响。
二、使用
flat参数为几,那么是将几层数组拉平到一层数组,infinity为无限层级
[1, [2, [3]]].flat(3)
[1, [2, [3]]].flat(Infinity)
三、解决(部分)浏览器不支持
挂载到数组的原型上即可
created () { Array.prototype.flat = count => { let c = count || 1 const len = this.length let exe = [] if (this.length === 0) return this while (c--) { const _arr = [] let flag = false if (exe.length === 0) { flag = true for (let i = 0; i < len; i += 1) { if (this[i] instanceof Array) { exe.push(...this[i]) } else { exe.push(this[i]) } } } else { for (let i = 0; i < exe.length; i += 1) { if (exe[i] instanceof Array) { flag = true _arr.push(...exe[i]) } else { _arr.push(exe[i]) } } exe = _arr } if (!flag && c === Infinity) { break } } return exe } },
四、欢迎交流指正。