【发布时间】:2016-04-13 13:03:34
【问题描述】:
我试图弄清楚如何同时循环两个对象,以便比较它们的属性。我尝试的是类似
for ((prop1, prop2) in (obj1, obj2) {
console.log(prop1 == prop2)
}
这绝对是行不通的。在js中怎么做呢?
【问题讨论】:
标签: javascript object for-loop
我试图弄清楚如何同时循环两个对象,以便比较它们的属性。我尝试的是类似
for ((prop1, prop2) in (obj1, obj2) {
console.log(prop1 == prop2)
}
这绝对是行不通的。在js中怎么做呢?
【问题讨论】:
标签: javascript object for-loop
基本来说,是这样的:
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]);
}
【讨论】:
您可以使用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不支持。
【讨论】:
你不能,你需要在 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);
}
【讨论】: