var arr = [
{ id: 102, pid: 1},
{ id: 103, pid: 1},
{ id: 104, pid: 3}, //根节点3
{ id: 10002, pid: 102},
{ id: 1, pid: 0}, //根节点0
]
function getTree(data, root, idTxt, pidTxt, pushTxt) {
var idTxt = idTxt || 'id';
var pidTxt = pidTxt || 'pid';
var pushTxt = pushTxt || 'children';
// 递归方法
function getNode(id) {
var node = []
for (var i = 0; i < data.length; i++) {
if (data[i][pidTxt] == id) {
data[i][pushTxt] = getNode(data[i][idTxt])
node.push(data[i])
}
}
if (node.length == 0) {
return
} else {
return node
}
}
// 使用根节点
return getNode(root)
}
var str = JSON.stringify(getTree(arr,0))
console.log(str)
console