如何在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属性。