获取两个数组对象中的不同对象
时间: 2024-04-08 21:29:34 浏览: 74
你可以使用以下方法获取两个数组对象中的不同对象:
1. 遍历第一个数组,将每个对象与第二个数组中的对象进行比较。如果在第二个数组中找不到相同的对象,则将该对象添加到一个新的数组中。
2. 同样地,遍历第二个数组,将每个对象与第一个数组中的对象进行比较。如果在第一个数组中找不到相同的对象,则将该对象添加到之前创建的新数组中。
下面是一个示例代码,演示如何实现这一功能:
```javascript
function getDifferentObjects(array1, array2) {
var differentObjects = [];
// 遍历第一个数组
for (var i = 0; i < array1.length; i++) {
var found = false;
// 将当前对象与第二个数组中的对象进行比较
for (var j = 0; j < array2.length; j++) {
if (isEqual(array1[i], array2[j])) {
found = true;
break;
}
}
// 如果在第二个数组中找不到相同的对象,则将其添加到新数组中
if (!found) {
differentObjects.push(array1[i]);
}
}
// 遍历第二个数组
for (var k = 0; k < array2.length; k++) {
var found = false;
// 将当前对象与第一个数组中的对象进行比较
for (var l = 0; l < array1.length; l++) {
if (isEqual(array2[k], array1[l])) {
found = true;
break;
}
}
// 如果在第一个数组中找不到相同的对象,则将其添加到新数组中
if (!found) {
differentObjects.push(array2[k]);
}
}
return differentObjects;
}
// 判断两个对象是否相等的辅助函数
function isEqual(obj1, obj2) {
return JSON.stringify(obj1) === JSON.stringify(obj2);
}
// 示例用法
var array1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Mike' }];
var array2 = [{ id: 2, name: 'Jane' }, { id: 3, name: 'Mike' }, { id: 4, name: 'Sarah' }];
var differentObjects = getDifferentObjects(array1, array2);
console.log(differentObjects);
```
上述代码将输出不同对象的数组:
```
[{ id: 1, name: 'John' }, { id: 4, name: 'Sarah' }]
```
希望这能帮到你!如果有任何问题,请随时提问。
阅读全文