第一种简单的也是常想到的
var arr=[1,2,[3,4,[5,6,7],8,[9,10],[12,33],67],11,23]
var arr1=[]
// 第一种 用函数封装
function lp(arr){
for(var i=0;i<arr.length;i++){
if(Array.isArray(arr[i])){
lp(arr[i])
}
else{
arr1.push(arr[i])
}
}
return arr1
}
lp(arr)
console.log(arr1);
第二种较简单的方法
var list=[1,2,[3,4,5,[6,7],[8]],9,[10,11]]
var arr1=null
//第二种 我们是转字符串的 再转成数组的。(但这里面的每一项的类型都是String)
function lp2(list){
arr1=list.toString()
return arr1
}
lp2(list)
console.log(arr1.split(','));
第三种flat()
es2019 新特性之一
var arr=[1,2,[3,4,[5,6,[7,8],9]],10]
//数字表示拉平几层
console.log(arr.flat(1));//(6) [1, 2, 3, 4, Array(4), 10]
console.log(arr.flat(2));//(9) [1, 2, 3, 4, 5, 6, Array(2), 9, 10]
console.log(arr.flat(3));//(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
//表示一直拉平完
console.log(arr.flat(Infinity));
//(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]