java id pid_根据id,pid生成树结构,再生成id,pid形式
最近做一個樹形表格,從數據庫讀出來給前端后,用插件老是有一些顯示的錯誤,可能是因為插件還需要數據按順序排好,so就有了這種轉樹再轉回來的奇葩想法
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
}
}
[ { Id: 1, Key: 'params', Value: '', Pid: -1 },
{ Id: 3, Key: 'filter', Value: '', 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 },
{ Id: 2, Key: 'method', Value: 'Post|Get', Pid: 1 } ]
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java id pid_根据id,pid生成树结构,再生成id,pid形式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一秒钟教你了解钻展
- 下一篇: java的c import_关于编译(j