1.使用es6中提供的flat()方法实现
<script>
let arr = [
[1, 2, 2],
[3, 4, 5, 5],
[6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10
]
//flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
arr = arr.flat(Infinity)
console.log(arr);
</script>
2.利用转化为字符串的思想
(1)toString()
let arr = [
[1, 2, 2],
[3, 4, 5, 5],
[6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10
]
arr = arr.toString().split(',').map(item => parseFloat(item))
console.log(arr);
(2)JSON.stringify()
let arr = [
[1, 2, 2],
[3, 4, 5, 5],
[6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10
]
arr = JSON.stringify(arr).replace(/(\[|\])/g,'').split(',').map(item => parseFloat(item))
console.log(arr);
3.循环验证是否为数组
let arr = [
[1, 2, 2],
[3, 4, 5, 5],
[6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10
]
// 循环验证是否为数组
// some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值
while(arr.some(item => Array.isArray(item))) {
// concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组
arr = [].concat(...arr)
}
console.log(arr);