共计 331 个字符,预计需要花费 1 分钟才能阅读完成。
迭代的实现:
let arr = [1, 2, [3, 4, 5, [6, 7], 8], 9, 10, [11, [12, 13]]]
const flatten = function (arr) {while (arr.some(item => Array.isArray(item))) {arr = [].concat(...arr)
}
return arr
}
console.log(flatten(arr)) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
递归的实现 (ES6 简写):
const flatten = array => array.reduce((acc, cur) => (Array.isArray(cur) ? [...acc, ...flatten(cur)] : [...acc, cur]), [])
正文完