根据编码生成树状结构

function list2treeCode(list) {
    let set = new Set(list.map(item => item.code.length));
    let setOrder = Array.from(set).sort();
    let arr = list.filter(item => item.code.length == setOrder[0]);
    arr.forEach(item => {
        recursion(item, list, setOrder, 1)

    })
    return arr;
}
function recursion(obj, list, setOrder, curIndex) {
    let arr = list.filter(item => item.code.indexOf(obj.code) == 0 && item.code.length == setOrder[curIndex]);
    if (arr.length)
        obj.children = arr
    arr.forEach(element => {
        recursion(element, list, setOrder, curIndex + 1)
    });
    return arr
}

export default list2treeCode
posted @ 2023-02-20 21:38  九折丶水平  阅读(43)  评论(0)    收藏  举报