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; } }