根據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