从二维数据转换成 JS 树形,JS树形转换成 二维数据

 

 

 

//转换成树形
function toTree(data, parent_id) {
    var tree = [];
    var temp;
    for (var i = 0; i < data.length; i++) {
        if (data[i].pid == parent_id) {
            var obj = {
                text: data[i].name,
                id: data[i].id,
                pid: data[i].pid,
                pic: data[i].pic,
                sort_id: data[i].sort_id
            };
            temp = toTree(data, data[i].id);
            if (temp.length > 0) {
                obj.children = temp;
            }
            tree.push(obj);
        }
    }
    return tree;
}


// 树转二维数组
function treeToArry(node) {
    var stack = Object.assign([], node);
    var data = [];
    while (stack.length != 0) {
        var shift = stack.shift();
        data.push({
            id: shift.id,
            name: shift.name,
            pid: shift.pid,
            pic: shift.pic
        })
        var children = shift.children;
        if (children) {
            for (var i = 0; i < children.length; i++) {
                stack.push(children[i])
            }
        }
    }
    return data
}

  

posted @ 2020-03-19 15:23  崩溃的油条  阅读(775)  评论(0编辑  收藏  举报