1.flat()
var str= [1, [2, 3], [4, 5], [6, [7, 8], 9, [[[10, [[11, 12], 13], 14], 15, 16], 17], 18]]
//参数表示要拉平几层 当不知道要拉平几层是可设置参数 Infinity 全部拉平
str=str.flat(Infinity)
console.log(str)//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
2.toString()
注意用toString()方法拉平数组返回的是字符串
var str= [1, [2, 3], [4, 5], [6, [7, 8], 9, [[[10, [[11, 12], 13], 14], 15, 16], 17], 18]]
str = str.toString()
console.log(str)//1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
3.递归方法
var str= [1, [2, 3], [4, 5], [6, [7, 8], 9, [[[10, [[11, 12], 13], 14], 15, 16], 17], 18]]
var newStr=[]
function getSameLevel(arr){
for(var i=0;i<arr.length;i++){
if(arr[i].length>1){
getSameLevel(arr[i])//反复调用
}else{
newStr.push(arr[i])
}
}
return newStr
}
console.log(getSameLevel(str))//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]