数组扁平化
1. 调用 ES6 中的 flat 方法
arr.flat(Infinity)
2. 递归
function flatten(arr) {
let res = []
for (let i of arr) {
Array.isArray(i) ? res = res.concat(flatten(i)) : res.push(i)
}
return res
}
console.log(flatten(arr))
3. reduce
function flatten(arr) {
return arr.reduce((pre, cur) => pre.concat(Array.isArray(cur) ? flatten(cur) : cur), [])
}
console.log(flatten(arr))
4. 扩展运算符
function flatten(arr) {
while (arr.some(item => Array.isArray(item))) {
console.log(arr, 'kkk')
arr = [].concat(...arr)
console.log(arr, 'lll')
}
return arr
}
console.log(flatten(arr))