方案一:递归
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | arr=[[1,3,4,5],[2,3,5]]; var arr1=[]; function addNum(e){ e.forEach( function (e){ if ( typeof (e)!= "number" ){ e.forEach( function (e){ addNum(e); }) } else { arr1.push(e); } }) } arr.forEach( function (e){ addNum(e); }); console.log(arr1); |
简单的维度还可以,但是数组维度变得很多的情况下,递归不见得很好用啊?
方案二:数组的特殊处理
arr=[2,3,3,4,[2,3,4,[13,3,[3,4,6],4]]];
arr=""+arr; //也可以toString()方法,这里对数组进行处理console.log(arr); //2,3,3,4,2,3,4,13,3,3,4,6,4 //string
arr=arr.split(",");
console.log(arr); //["2", "3", "3", "4", "2", "3", "4", "13", "3", "3", "4", "6", "4"] //array
var arr1=[];
for(var i=0;i<arr.length;i++){ arr1[i]=eval(arr[i]);};//newArr[i]=Number(newArr[i]);
console.log(arr1); //[2, 3, 3, 4, 2, 3, 4, 13, 3, 3, 4, 6, 4];
var arr = [1,[2,[[3,4],5],6]]; var newArr = []; function fun(arr){ for(var i=0;i<arr.length;i++){ if(Array.isArray(arr[i])){ fun(arr[i]); }else{ newArr.push(arr[i]); } } } fun(arr); console.log(newArr);//[1, 2, 3, 4, 5, 6]
发表评论: