- 二维数组转一维数组:(使用reduce+concat来实现)
function arrayFlat(arr){
return arr.reduce((prev,cur)=>{
return prev.concat(cur);
},[])
}
- 多维数组转一维数组:(使用reduce+concat+递归来实现)
function arrayFlat(arr){
return arr.reduce((prev,cur)=>{
return Array.isArray(cur)? prev.concat(arrayFlat(cur)) :prev.concat(cur);
},[])
}
- 上面俩个是不改变原数组的,下面的实现改变原来的数组
function arrayFlat(arr){
for(let i = 0; i< arr.length;i++){
let flag =Array.isArray(arr[i]);
if(flag){
arrayFlat(arr[i]);
let len = arr[i].length;
arr.splice(i,1,...arr[i]);
i +=len -1
}
}
return arr
}