简单的JSON数组转树形结构

function toTree(data) {
            let result = []
            if(!Array.isArray(data)) {
                return result
            }
            data.forEach(item => {
                delete item.children;
            });
            let map = {};
            data.forEach(item => {
                map[item.id] = item;
            });
            data.forEach(item => {
                let parent = map[item.pid];
                if(parent) {
                    (parent.children || (parent.children = [])).push(item);
                } else {
                    result.push(item);
                }
            });
            return result;
        }
        var source2 = [
            { id: 1, pid: 0, name: '扬水设备' },
            { id: 'ys1', pid: 1, name: '扬水1' },
            { id: 'yszj', pid: 'ys1', name: '扬水子集' },
            { id: 'lxb', pid: 1, name: '离心泵' },
            { id: 'lsbzj', pid: 'lxb', name: '离心泵子集' },
            { id: 6, pid: 0, name: 'body' },
            { id: 2, pid: 6, name: 'title' },
            { id: 3, pid: 6, name: 'div' },
            { id: 4, pid: 3, name: 'span' },
            { id: 5, pid: 3, name: 'icon' }
        ]
        console.log(toTree(source2))
</script>

简单的json数组转换树形结构.仅作记录

posted @ 2021-07-28 16:10  lpmou  阅读(191)  评论(0编辑  收藏  举报
返回顶部