javascript - 如何找到两组对象的差异?

标签 javascript loops object for-loop

给定这两个对象

var obj1 = [{ number: 23, team: 'Bulls', lastname: 'Jordan'}];
var obj2 = [{ number: 23, team: 'Bulls', lastname: 'Jordan'}, {number: 23, team: 'Cavaliers', lastname: 'James'}];

在这种情况下,我如何遍历两者以返回差异

{number: 23, team: 'Cavaliers', lastname: 'James'}

我设置了一些效果

var difference = {};
if (obj2.length > obj1.length) {
    for (var i = 0; i < obj2.length; i++) {
        for (var j in obj2[i]) {
            for (var k in obj1[i]) {
                if (!(obj2[i][j] === obj1[i][k])) {
                    difference.push(obj2[i][j]);
                }
            }
        }
    }
}

我明白为什么这是错误的,我似乎无法弄清楚如何同时循环遍历第一个和第二个对象的键来比较它们以修复它。

最佳答案

如果 obj2obj1 相同但推送了额外的项目,则更改集很简单:

obj2.slice(obj1.length);

关于javascript - 如何找到两组对象的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31749756/

相关文章:

javascript - 解析 json jquery

javascript - 如何获得设备的真实尺寸?

r - R 中每次一个变量的输出回归统计

javascript - 如果数组在对象中并且对象在下一个数组中,如何在数组中的对象中获取值?

python - 在 python 中将 View 分配给相同的名称与新名称有什么好处吗?

javascript - 语言学习游戏 - 如何对对象中的单词进行分类

javascript - 从模式电子邮件地址中提取名字和姓氏

javascript - 使用 jquery 将页面上的所有价格从一种货币更改为另一种货币?

C——无限循环,我想?

javascript - 对中间循环数字使用最终循环值