javascript 简单json数据转换为树形结构数据

917 阅读1分钟
var menuArry = [
    {id: 1, name: "办公管理", pid: 0},
    {id: 2, name: "请假申请", pid: 1},
    {id: 3, name: "出差申请", pid: 1},
    {id: 4, name: "请假记录", pid: 2},
    {id: 5, name: "系统设置", pid: 0},
    {id: 6, name: "权限管理", pid: 5},
    {id: 7, name: "用户角色", pid: 6},
    {id: 8, name: "菜单设置", pid: 6},
];

var getJsonTree = function (data, parentId) {
    var itemArr = [];
    for (var i = 0; i < data.length; i++) {
        var node = data[i];
        if (node.pid === parentId) {
            var newNode = {id: node.id, title: node.name, children: getJsonTree(data, node.id)};
            itemArr.push(newNode);
        }
    }
    return itemArr;
};

console.log(getJsonTree(menuArry, 0));