首页 > 编程语言 > 详细

递归取数组数据

时间:2017-09-07 18:43:11      阅读:250      评论:0      收藏:0      [点我收藏+]

一、问题描述
通过递归的方式取出嵌套多层的数组数据,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);

 

递归取数组数据

原文:http://www.cnblogs.com/camille666/p/js_get_crazyarr_item.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!