一、实现一个flatten函数,将一个嵌套多层的数组 array(数组) (嵌套可以是任何层数)转换为只有一层的数组,数组中元素仅基本类型的元素或数组,不存在循环引用的情况。
Ex: flatten([1, [2], [3, [[4]]]]) => [1, 2, 3, 4];
var flatten=function(arr){
var result=[]; //创建新数组
for(var i=0;i<arr.length;i++){ //循环遍历数组
if(!Array.isArray(arr[i])){ //判断数组每个成员是否还是数组
result.push(arr[i]); //如果不是数组,添加到result数组中
}
else{
result=result.concat(flatten(arr[i])); //如果还是数组,递归循环
}
}
return result; //循环结束返回值
}
var arr=[1, [2], [3, [[4]]]];
flatten(arr);