我试图弄清楚如何同时循环两个对象,以便我可以比较它们的属性。我尝试的是像
for ((prop1, prop2) in (obj1, obj2) {
console.log(prop1 == prop2)
}
绝对没有用。我如何在js中执行此操作?
答案 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);
}