当浏览器提示 flat is not a function 的时候;莫慌
既然浏览器不支持,那咱们就手写个!用自己的,放心!
-
实现代码
const flat = (arr, deep) => { if (deep > 0) return arr.reduce((pre, cur) => pre.concat(Array.isArray(cur) ? flat(cur, deep - 1) : cur), []) return arr.slice() }
-
使用
调用:flat([1, [2], [[3], [4]], [[[5], [6]]]], 2)
结果:(6) [1, 2, 3, 4, Array(1), Array(1)]调用:flat([1, [2], [[3], [4]], [[[5], [6]]]], 3)
结果:(6) [1, 2, 3, 4, 5, 6]调用:flat([1, [2], [[3], [4]], [[[5], [6]]]], Infinity)
结果:(6) [1, 2, 3, 4, 5, 6]