树形数据转化1234567891011121314151617181920212223242526272829303132333435363738394041toTree(list, parentId = '') { let childrenMap = {}; let parentMap = {}; let res = []; //首先按照 list.forEach(function (node) { node.hasChildren = false; // 注册子节点映射表 if (!Object.keys(childrenMap).includes(node.parentId)) { childrenMap[node.parentId] = []; } else if (Object.keys(parentMap).includes(node.parentId)) { parentMap[node.parentId].hasChildren = true; } childrenMap[node.parentId].push(node); // 注册父节点映射节点表 parentMap[node.id] = node; // 查找自己的子节点 if (!Object.keys(childrenMap).includes(node.id)) { childrenMap[node.id] = []; } else { node.hasChildren = true; } node.ChildNodes = childrenMap[node.id]; }); if (!parentId) { // 获取祖先数据列表 Object.keys(childrenMap).forEach(function (item) { if (!Object.keys(parentMap).includes(item)) { res = res.concat(childrenMap[item]); } }); } else { if (Object.keys(childrenMap).includes(parentId)) { return childrenMap[parentId]; } else { return []; } } return res;} 树形数据并集12345678910111213checked(id, data, newArr) { data.forEach((item) => { if (item.id == id) { if (item.ChildNodes && item.ChildNodes.length == 0) { newArr.push(item.id); } } else { if (item.ChildNodes != null && item.ChildNodes.length != 0) { this.checked(id, item.ChildNodes, newArr); } } });}