树形数据和数组相互转换

//树形数据铺成数组

tree2arr(tree) {
        let arr = []
        const expanded = datas => {
            if (datas && datas.length > 0) {
                datas.forEach(e => {
                    arr.push(e)
                    expanded(e.children)
                })
            }
        }
        expanded(tree)
        return arr
    }

// 数组拼成树形数据

arr2tree(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;
    }
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容