一,递归
//一,递归
letarr=[1,[2,3,4,5],[6,7,8,9,[10,11,12,[14,15,16]]]]
letnewArr=[]
constgetArr=(array)=>{
array.forEach((item)=>{
//如果遍历的元素不是一个数组就把这个元素放到新数组中
//反之就进行递归再次调用方法
Array.isArray(item)?getArr(item):newArr.push(item)
})
}
getArr(arr)
console.log(newArr)
二,将多维数组转为字符串,再转化为一维数组
letarr=[1,[2,3,4,5],[6,7,8,9,[10,11,12,[14,15,16]]]]
console.log(arr.join(',').split(','))
三,利用数组的方法
(使用Infinity作为深度,展开任意深度的嵌套数组)
Array.prototype.flat()
letarr=[1,[2,3,4,5],[6,7,8,9,[10,11,12,[14,15,16]]]]
console.log(arr.flat(Infinity))
四、利用contact
vara=[1,[2],[3,4]]
varresult=[]
for(vari=0;i<a.length;i++){
if(a[i].constructor==Array){
result=result.concat(a[i])
}else{
result.push(a[i])
}
}
console.log(result)
五、利用扩展运算符
扩展运算符相当于数组拆成最小单位了,
...[1,2,[3,4]]相当于变成了1,2,[3,4]///[].concat(...a)就相当于[].concat(1,2,[3,4])
vara=[1,[2],[3,4]]
varresult=[]
result=[].concat(...a)
console.log(result)
|