小白一枚,请问JS怎么递归遍历n维数组呢

jadeee123 2017-04-12 02:14:35

var aa = [
{name:'AAA',age:111,children:[{name:'aaa1',age:12},{name:'aaa2',age:22}]},
{name:'BBB',age:141,children:[{name:'bbb1',age:15},{name:'bbb2',age:19}]},
{name:'CCC',age:131,children:[{name:'ccc1',age:18},{name:'ccc2',age:15,children:[{name:'ccccc2',age:10}]}]}
]

怎么递归遍历出所有节点呢,求助!!!!
...全文
690 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mrantt 2018-03-05
  • 打赏
  • 举报
回复
不知道你想遍历每个数组还是什么,我这个能遍历所有的对象,顺便还能帮你过滤想要的(详查数组的filter方法),你看看是不是你想要的 function getAll(arr) { arr.filter(item => { console.log(item) if(item.children && item.children.length) { getAll(item.children) } }) } getAll(aa)
tysj_2001 2017-04-12
  • 打赏
  • 举报
回复
不知道符合不符合你的需求,借用了楼上的一点代码。

 var aa = [
                {name:'AAA',age:111,children:[{name:'aaa1',age:12},{name:'aaa2',age:22}]},
                {name:'BBB',age:141,children:[{name:'bbb1',age:15},{name:'bbb2',age:19}]},
                {name:'CCC',age:131,children:[{name:'ccc1',age:18},{name:'ccc2',age:15,children:[{name:'ccccc2',age:10}]}]}
            ];
            for(var i = 0;i<aa.length;i++){
                print(aa[i]);
            }
function print(arr){
            for(var item in arr){
                console.log(item);
                if(typeof(arr[item])=='object'){
                    for(var i = 0;i<arr[item].length;i++){
                        print(arr[item][i]);
                    }
                }
                else{
                    console.log(arr[item]);
                }
            }
        }

cn00439805 2017-04-12
  • 打赏
  • 举报
回复

function print(arr){
	for(var i = 0,o;o=arr[i];i++){
		console.log(JSON.stringify(o));
		o.children && print(o.children);
	}
}

var aa = [
	{name:'AAA',age:111,children:[{name:'aaa1',age:12},{name:'aaa2',age:22}]},
	{name:'BBB',age:141,children:[{name:'bbb1',age:15},{name:'bbb2',age:19}]},
	{name:'CCC',age:131,children:[{name:'ccc1',age:18},{name:'ccc2',age:15,children:[{name:'ccccc2',age:10}]}]}
];

print(aa);

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧