两个对象数组,把不同的找出来
时间: 2023-06-26 15:08:05 浏览: 93
两个list比较 取不同的对象
4星 · 用户满意度95%
假设我们有两个对象数组 arr1 和 arr2,每个对象都有一些属性。要找出 arr1 中不同于 arr2 的对象,可以使用以下步骤:
1. 遍历 arr1 中的每个对象。
2. 对于每个对象,在 arr2 中查找具有相同属性值的对象。
3. 如果找到了相同属性值的对象,则继续遍历 arr1 的下一个对象。
4. 如果没有找到相同属性值的对象,则将当前对象添加到结果数组中。
5. 遍历完 arr1 中的所有对象后,返回结果数组。
以下是一个示例代码实现:
```javascript
function findDifferentObjects(arr1, arr2) {
const result = [];
for (const obj1 of arr1) {
let found = false;
for (const obj2 of arr2) {
if (isEqual(obj1, obj2)) {
found = true;
break;
}
}
if (!found) {
result.push(obj1);
}
}
return result;
}
function isEqual(obj1, obj2) {
// 判断两个对象是否相等,略
// 可以使用 Lodash 的 isEqual 方法
}
// 示例用法
const arr1 = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }];
const arr2 = [{ id: 1, name: 'Alice' }, { id: 4, name: 'David' }];
const diff = findDifferentObjects(arr1, arr2);
console.log(diff); // [{ id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }]
```
在上面的示例中,我们定义了两个数组 arr1 和 arr2,它们包含一些对象。我们调用了 findDifferentObjects 函数,并将这两个数组作为参数传递给它。
函数执行后,返回 arr1 中不同于 arr2 的对象,即 [{ id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }]。这些对象在 arr2 中不存在,因此它们是 arr1 中的独特对象。
阅读全文