一、问题描述
通过递归的方式取出嵌套多层的数组数据,var crazyArr = [1,2,[3,4,[5]],6,[7,[8,9,[10,11,[12]]]]];
二、解决方案
//方法1 function fillArray(arr,result){ var count = arr.length; var i = 0; for(;i<count;++i){ var temp = arr[i]; if(Array.isArray(temp)){ fillArray(temp,result); } else { result.push(arr[i]); } } } var result = []; var crazyArr = [1,2,[3,4,[5]],6,[7,[8,9,[10,11,[12]]]]]; fillArray(crazyArr,result); console.log(result);
//方法2 var resultMap = {}; function fillArray(arr,result){ var count = arr.length; var i = 0; if (!count){ return []; } for(;i<count;++i){ var temp = arr[i]; var g = resultMap[temp]; if(g){ result.push(g); } else { if (Array.isArray(temp)){ fillArray(temp,result); } else { result.push(temp); } } } } var result = []; var crazyArr = [1,2,[3,4,[5]],6,[7,[8,9,[10,11,[12]]]]]; fillArray(crazyArr,result);
时间: 2024-08-25 23:02:59