javascript - 关于json数组递归的问题

查看:80
本文介绍了javascript - 关于json数组递归的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var arr=[{

    name:"总队",
    id:"1",
    alias:"zongdui",
    children:[{
        name:"第一支队",
        id:"2",
        parent_id:"1",
        children:[
            {
                name:"第一大队",
                id:"4",
                parent_id:"2"    
            }
        ]},
        {
        name:"第二支队",
        id:"3",
        parent_id:"1",
        children:[
            {
                name:"第二大队",
                id:"5",
                parent_id:"2"
            }
        ]
    }]  

}]

这个json 怎么递归出 name 和 id ?求代码

解决方案

利用递归实现

var arr = [{
    name:"总队",
    id:"1",
    alias:"zongdui",
    children:[{
        name:"第一支队",
        id:"2",
        parent_id:"1",
        children:[
            {
                name:"第一大队",
                id:"4",
                parent_id:"2"    
            }
        ]},
        {
        name:"第二支队",
        id:"3",
        parent_id:"1",
        children:[
            {
                name:"第二大队",
                id:"5",
                parent_id:"2"
            }
        ]
    }]  
}]; 

function headFor(o, cb){
    if (!o) return; 

    o.forEach(child => {
        cb(child); 
        if (child.children) {
            headFor(child.children, cb);    
        }
    });
}

var res = []; 
headFor(arr, function(o){
    var temp = {
        name: o.name, 
        id: o.id,
        parent_id: o.id 
    }; 
    res.push(temp); 
}); 

res.forEach(e => console.log(e)); 
console.log(JSON.stringify(res)); 

Link

我答过一个几乎一模一样的。。。
https://segmentfault.com/q/10...

这篇关于javascript - 关于json数组递归的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆