1.使用for循环来实现递归
var arr = [1, 5, 1,[8, [6, 5], 4, 5], 5, 4, [5, 2, 8], 7, 5];
function tiGui(arr){
var arboy=[]
for(var i=0;i<arr.length;i++){
//判断arr的第i个是否为数组,为数组就重新执行该函数
if((arr[i] instanceof Array)==true){
//因为执行该函数返回的还是一个数组,所以需要拼接一下
arboy=arboy.concat(tiGui(arr[i]));
}else{
//假如不为数组,那就直接给他添加到新数组里
arboy.push(arr[i]);
}
}
//返回新的数组
return arboy;
}
console.log(tiGui(arr)); //[1, 5, 1, 8, 6, 5, 4, 5, 5, 4, 5, 2, 8, 7, 5]
2.使用forEach来实现递归
var arr = [1, 5, 1,[8, [6, 5], 4, 5], 5, 4, [5, 2, 8], 7, 5];
function tiGui(arr){
var arboy=[]
arr.forEach(item=>{
//判断arr的第i个是否为数组,为数组就重新执行该函数
if((item instanceof Array)==true){
//因为执行该函数返回的还是一个数组,所以需要拼接一下
arboy=arboy.concat(tiGui(item));
}else{
//假如不为数组,那就直接给他添加到新数组里
arboy.push(item);
}
})
//返回新的数组
return arboy;
}
console.log(tiGui(arr)); //[1, 5, 1, 8, 6, 5, 4, 5, 5, 4, 5, 2, 8, 7, 5]