标签:fun push strong style 方式 length function span resultmap
一、问题描述
通过递归的方式取出嵌套多层的数组数据,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);
标签:fun push strong style 方式 length function span resultmap
原文地址:http://www.cnblogs.com/camille666/p/js_get_crazyarr_item.html