Javascript 数组转无限级分类(递归)

<script type="text/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);
        }
    }
    return res;
}

console.log(convert(arr, 0));
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容