arr:[ {id:1,a:'a'}, {id:2,a:'d'}, {id:3,a:'c'}, {id:4,a:'b'}, ], arr1:[ {id:1,a:'a'}, {id:2,a:'d'}, {id:3,a:'c'}, ],两组数据进行比较过滤出不同的数据
时间: 2024-03-03 07:47:57 浏览: 56
可以通过循环遍历两个数组,将每个对象的 id 和属性值进行比较,如果两个数组中有相同 id 的对象且属性值相同,则认为两个对象相同,否则认为两个对象不同,将不同的对象放入一个新的数组中,最后返回该数组即可。
以下是 JavaScript 代码示例:
```javascript
function compareArray(arr1, arr2) {
const result = [];
for (let i = 0; i < arr1.length; i++) {
const obj1 = arr1[i];
let isSame = false;
for (let j = 0; j < arr2.length; j++) {
const obj2 = arr2[j];
if (obj1.id === obj2.id && obj1.a === obj2.a) {
isSame = true;
break;
}
}
if (!isSame) {
result.push(obj1);
}
}
return result;
}
const arr = [
{ id: 1, a: 'a' },
{ id: 2, a: 'd' },
{ id: 3, a: 'c' },
{ id: 4, a: 'b' },
];
const arr1 = [
{ id: 1, a: 'a' },
{ id: 2, a: 'd' },
{ id: 3, a: 'c' },
];
console.log(compareArray(arr, arr1)); // [{ id: 4, a: 'b' }]
```
在上述代码中,我们定义了一个 `compareArray` 函数,它接受两个数组参数 `arr1` 和 `arr2`,返回一个新数组 `result`,其中存放两个数组中不同的对象。
在函数内部,我们通过两层循环遍历两个数组,将每个对象的 id 和属性值进行比较,如果两个数组中有相同 id 的对象且属性值相同,则认为两个对象相同,将 `isSame` 标志设置为 `true`,并跳出当前循环。如果最终 `isSame` 的值为 `false`,说明该对象在两个数组中都不存在或者属性值不同,将该对象放入 `result` 数组中。
最后,我们分别定义了 `arr` 和 `arr1` 两个数组,并将它们作为参数传入 `compareArray` 函数中进行比较,输出结果为 `[{ id: 4, a: 'b' }]`,即两个数组中不同的对象。
阅读全文