1.最简单实现方法
直接在浏览器终端输入就可以实现数组展平
2.用 while 循环+ some方法
some
方法测试数组中是不是至少有 1 个元素通过了被提供的函数测试。它返回的是一个 Boolean 类型的值。
concat()
方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
通过some来判断数组中是否用数组,通过while不断循环执行判断, 如果是数组的话可以使用 拓展运算符...
每次只能展开最外层的数组,加上contact
来减少嵌套层数,
const arr = [1, 2, 3, [4, 5, [6, [7, 8, [9, 10, [11, 12, [13]]]]]]]
const flatten = (arr) => {
while (arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr)
}
return arr
}
console.log(flatten(arr)) //(8) [1, 2, 3, 4, 5, 7, 8, 9]