Javascript 数组转无限级分类

递归

var arr = [
    {"id":1,"parent_id":0,"name":"Foods"},
    {"id":2,"parent_id":1,"name":"Fruits"},
    {"id":3,"parent_id":2,"name":"apple"},
    {"id":4,"parent_id":2,"name":"orange"},
    {"id":5,"parent_id":2,"name":"tomato"},
    {"id":6,"parent_id":1,"name":"Vegetables"},
    {"id":7,"parent_id":6,"name":"carrot"},
    {"id":8,"parent_id":6,"name":"cabbage"},
    {"id":9,"parent_id":6,"name":"potato"},
    {"id":10,"parent_id":6,"name":"lettuce"},
    {"id":11,"parent_id":0,"name":"Cars"}
];

function convert(arr, id){
    var res = [];
    for (var i = 0; i < arr.length; i++) {
        if (arr[i].parent_id == id) {
            res.push(arr[i]);
            // var func = eval(arguments.callee.name);
            // arr[i].child = func(arr, arr[i].id);
            arr[i].child = convert(arr,arr[i].id);
        }
    }
    return res;
}

console.log(convert(arr, 0));

https://www.jianshu.com/p/e8f3d71bd9c6

posted @ 2019-11-19 20:34  樱风凛  阅读(378)  评论(0编辑  收藏  举报