两个数组对象如果相同就放到一个新数组,如果不相同则放入另外一个数组
时间: 2023-10-08 11:08:42 浏览: 43
可以通过遍历数组对象并比较它们的属性来实现这个功能。下面是一个示例代码:
```javascript
const arr1 = [
{ id: 1, name: "apple" },
{ id: 2, name: "banana" },
{ id: 3, name: "pear" },
{ id: 4, name: "orange" }
];
const arr2 = [
{ id: 1, name: "apple" },
{ id: 3, name: "pear" },
{ id: 5, name: "grape" }
];
const sameArr = [];
const diffArr = [];
for (let i = 0; i < arr1.length; i++) {
let found = false;
for (let j = 0; j < arr2.length; j++) {
if (arr1[i].id === arr2[j].id && arr1[i].name === arr2[j].name) {
sameArr.push(arr1[i]);
found = true;
break;
}
}
if (!found) {
diffArr.push(arr1[i]);
}
}
for (let i = 0; i < arr2.length; i++) {
let found = false;
for (let j = 0; j < sameArr.length; j++) {
if (arr2[i].id === sameArr[j].id && arr2[i].name === sameArr[j].name) {
found = true;
break;
}
}
if (!found) {
diffArr.push(arr2[i]);
}
}
console.log("Same array:", sameArr);
console.log("Different array:", diffArr);
```
在这个示例代码中,我们将 `arr1` 和 `arr2` 中的数组对象进行比较,如果它们的 `id` 和 `name` 属性都相同,则将它们放入 `sameArr` 数组中。如果它们不同,则将它们放入 `diffArr` 数组中。最后,我们输出这两个数组。注意,这个算法是 O(n^2) 的,如果数组很大,效率可能会比较低。