js——数据处理——数组转树形结构

递归解析——不推荐 普通变树形

功能:把普通数组 处理成 树形数组

 var list = [
            { id: 1, name: "冰箱", pid: "" },
            { id: 2, name: "海尔冰箱", pid: 1 },
            { id: 3, name: "美的冰箱", pid: 1 },
            { id: 4, name: "电视", pid: "" },
            { id: 5, name: "小米电视", pid: 4 },
            { id: 6, name: "小米电视EA Pro 55英寸", pid: 5 },
            { id: 7, name: "小米电视EA55 2022款", pid: 5 },
        ];
        //
        //list传入的列表
        // pid表示层级''表示一级列表'
        function fn (list, pid) {
            var list1 = []
            list.forEach((item) => {
                if (item.pid === pid) {
                    list1.push(item);
                    item.children = fn(list, item.id);
                }
            });
            return list1;
        }
        console.log(fn(list, ''));

foreach解析——推荐

  var list = [
            { id: 1, name: "冰箱", pid: "" },
            { id: 2, name: "海尔冰箱", pid: 1 },
            { id: 3, name: "美的冰箱", pid: 1 },
            { id: 4, name: "电视", pid: "" },
            { id: 5, name: "小米电视", pid: 4 },
        ];
        var list1 = []
        list.forEach(function (item) {
            if (item.pid === "") {
                item.children = []
                list1.push(item)
                list.forEach((item1) => {
                    if (item1.pid == item.id) {
                        item.children.push(item1)
                    }
                })
            }
        })
        console.log(list1)
posted @ 2022-07-25 20:45  Shinnki  阅读(950)  评论(0)    收藏  举报