javascript - 关于json数组递归的问题
PHP中文网
PHP中文网 2017-05-16 12:59:57
0
4
378

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 ?求代码

PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
小葫芦

利用递归实现

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

我答过一个几乎一模一样的。。。
/q/10...

过去多啦不再A梦

雷雷

过去多啦不再A梦
arr2 = []
function arr_mat(arr){
    for(var i=0;i<arr.length;i++){
        if(arr[i].children.length > 0){
        //     // arr2.push({
        //     //     'name':arr[i].children.name
        //     // });
            console.log(arr[i].children);

            arr_mat(arr[i].children);
        }
    }
}
arr_mat(arr);

为什么我这样不行呢

巴扎黑

可以使用json_decode函数把json字符串转成数组操作

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!