如何在Javascript中同时循环对象的属性?

如何在Javascript中同时循环对象的属性?,javascript,object,for-loop,Javascript,Object,For Loop,我试图找出如何同时在两个对象上循环,以便比较它们的属性。我试过的是 for ((prop1, prop2) in (obj1, obj2) { console.log(prop1 == prop2) } 这肯定没用。如何在js中实现这一点?你不能,你需要在2中完成 您也可以尝试,不需要两个循环: for (var prop1 in obj1) { console.log(obj2[prop1] === undefined); } 你不能,你需要在2分钟内完成 您也可以尝试,不需要

我试图找出如何同时在两个对象上循环,以便比较它们的属性。我试过的是

for ((prop1, prop2) in (obj1, obj2) {
    console.log(prop1 == prop2)
}

这肯定没用。如何在js中实现这一点?

你不能,你需要在2中完成

您也可以尝试,不需要两个循环:

for (var prop1 in obj1) {
  console.log(obj2[prop1] === undefined);
}

你不能,你需要在2分钟内完成

您也可以尝试,不需要两个循环:

for (var prop1 in obj1) {
  console.log(obj2[prop1] === undefined);
}
您可以使用和功能

Object.keys(Object.assign({}, obj1, obj2)).forEach(function(key) {
    var prop1 = obj1[key];
    var prop2 = obj2[key];
    console.log(prop1 == prop2);
});
注意:检查Object.assign函数的浏览器兼容性。目前IE不支持它。

您可以使用它并运行它

Object.keys(Object.assign({}, obj1, obj2)).forEach(function(key) {
    var prop1 = obj1[key];
    var prop2 = obj2[key];
    console.log(prop1 == prop2);
});

注意:检查Object.assign函数的浏览器兼容性。目前IE不支持它。

基本上不支持它,是不是:

var obj1 = {
    prop1: 'prop1',
    prop2: 'prop2'
};

var obj2 = {
    prop1: 'prop1',
    prop2: 'prop2',
    prop3: 'prop3'
};

for (var prop in obj1) {
    console.log(prop, obj1[prop] == obj2[prop]);
}

从根本上说,它是:

var obj1 = {
    prop1: 'prop1',
    prop2: 'prop2'
};

var obj2 = {
    prop1: 'prop1',
    prop2: 'prop2',
    prop3: 'prop3'
};

for (var prop in obj1) {
    console.log(prop, obj1[prop] == obj2[prop]);
}

为什么我要检查它是否未定义?@AlanH:如果obj2[prop1]未定义,则表示obj2没有prop1属性。为什么我要检查它是否未定义?@AlanH:如果obj2[prop1]未定义,则表示obj2没有prop1属性。