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

时间:2016-01-08 18:44:51

标签: javascript object for-loop

我试图弄清楚如何同时循环两个对象,以便我可以比较它们的属性。我尝试的是像

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

绝对没有用。我如何在js中执行此操作?

3 个答案:

答案 0 :(得分:3)

您可以使用Object.keys()Object.assign()功能。

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

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

答案 1 :(得分:3)

从根本上说,就是这样:

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]);
}

答案 2 :(得分:0)

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

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

你也可以试试,没有2个循环:

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