在js中,比较两个数组对象中的children值并将它们的相同元素和不同元素分别提取出来
时间: 2024-02-26 11:59:19 浏览: 100
可以通过循环遍历两个数组对象,比较它们的children值,并将相同元素和不同元素分别存储到新的数组中。具体实现如下:
```javascript
const arr1 = [{id: 1, children: [1, 2, 3]}, {id: 2, children: [4, 5, 6]}, {id: 3, children: [7, 8, 9]}];
const arr2 = [{id: 4, children: [1, 2, 3]}, {id: 5, children: [4, 5, 6]}, {id: 6, children: [10, 11, 12]}];
const sameChildren = [];
const diffChildren = [];
for(let i = 0; i < arr1.length; i++) {
const obj1 = arr1[i];
for(let j = 0; j < arr2.length; j++) {
const obj2 = arr2[j];
if(obj1.children.toString() === obj2.children.toString()) {
sameChildren.push(obj1);
sameChildren.push(obj2);
} else {
diffChildren.push(obj1);
diffChildren.push(obj2);
}
}
}
console.log("相同元素:", sameChildren);
console.log("不同元素:", diffChildren);
```
这里的思路是,先循环遍历arr1数组中的每个对象,再循环遍历arr2数组中的每个对象,然后通过toString()方法将它们的children值转化为字符串进行比较。如果相同,则将它们存储在sameChildren数组中,否则存储在diffChildren数组中。最后输出这两个数组即可。
阅读全文