buildTree.txt function buildNodeTree(data) { var res = []; if (!!data data.length) { for (var i = 0, len = data.length, pNode, tmp; i len; i ++) { tmp = data[i]; if (!pNode || pNode.id != tmp.pId) { pNode = findParentNode(res, tmp); } if (!
function buildNodeTree(data) {
var res = [];
if (!!data && data.length) {
for (var i = 0, len = data.length, pNode, tmp; i < len; i ++) {
tmp = data[i];
if (!pNode || pNode.id != tmp.pId) {
pNode = findParentNode(res, tmp);
}
if (!pNode) {
// 没有顶层
res.push(tmp);
} else {
pNode.nodes = pNode.nodes || [];
pNode.nodes.push(tmp);
}
}
}
return res;
function findParentNode(src, target) {
var res = false,
callee = arguments.callee;
if (!!src && src.length) {
for (var i = 0, len = src.length, tmp;i < len; i ++) {
tmp = src[i];
if (tmp.id === target.pId) {
res = tmp;
break;
} else {
res = callee(tmp.nodes, target);
if (!!res) {
break;
}
}
}
}
return res;
}
}
