目的:
把原本arr1 中含有arr2 的數據對象剔除
過程:
//剔除未聯動點中的已聯動點
function cleanData(arr1, arr2) {
console.log("原始數據", arr1, arr2);
for (let i = 0; i < arr1.length; i++) {
let childata1 = arr1[i]['children'];
for (let x = 0; x < arr2.length; x++) {
// console.log('未聯動', childata1[x]);
let childata2 = arr2[x]['children'];
for (let y = 0; y < childata2.length; y++) {
// console.log('已聯動', childata2[y]);
if (JSON.stringify(childata1[x]) === JSON.stringify(childata2[y])) {
//去除與已聯動點相同的數據,留下刪除後的數據
childata1.splice(i, 1);
}
}
}
}
TreeTable(arr1);
TreeTable1(arr2)
}
PS: 注意數據格式,不要直接使用
①、 arr1數據
"data":[{"id":0,"name":"192.168.1.167","children":[{"id":68,"name":"167","pname":"167_輔助輸出"},{"id":68,"name":"167","pname":"167_門鎖"}]},{"id":1,"name":"192.168.1.168","children":[{"id":69,"name":"168","pname":"168_輔助輸出"},{"id":69,"name":"168","pname":"168_門鎖"}]
②、 arr2數據
"data":[{"id":0,"name":"192.168.1.167","children":[{"id":68,"name":"167","pname":"167_輔助輸出"}]},{"id":1,"name":"192.168.1.168","children":[{"id":69,"name":"168","pname":"168_門鎖"}]}