根据id,pid生成树结构,再生成id,pid形式


var data = [{
    "Id": 1,
    "Key": "params",
    "Value": "",
    "Pid": -1
}, {
    "Id": 3,
    "Key": "filter",
    "Value": "",
    "Pid": 1
}, {
    "Id": 2,
    "Key": "method",
    "Value": "Post|Get",
    "Pid": 1
}, {
    "Id": 4,
    "Key": "$and",
    "Value": "",
    "Pid": 3
}, {
    "Id": 6,
    "Key": "it:pt",
    "Value": "@it:pt",
    "Pid": 4
}, {
    "Id": 5,
    "Key": "bo:well",
    "Value": "@bo:well",
    "Pid": 4
}]
console.log(readTree(getTree(data, -1)[0], []))
//转成树
function getTree(data, Pid) {
    let result = []
    let temp
    for (let i = 0; i < data.length; i++) {
        if (data[i].Pid == Pid) {
            temp = getTree(data, data[i].Id)
            if (temp.length > 0) {
                data[i].children = temp
            }
            result.push(data[i])
        }
    }
    return result
}

//树再转回来
function readTree(data, val) {
    val.push({
        Id: data.Id,
        Key: data.Key,
        Value: data.Value,
        Pid: data.Pid

    })
    if (data.children) {
        for (let i = 0; i < data.children.length; i++) {
            readTree(data.children[i], val)
        }
        return val
    }

}

 参考链接: https://www.jianshu.com/p/18cf3feb833d


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM