码迷,mamicode.com
首页 > 编程语言 > 详细

递归取数组数据

时间:2017-09-07 19:21:27      阅读:178      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!