我有两个对象,我想相互比较它们,就像我需要并行检查和赋值一样,但是为此,我只需要执行一个for循环,但我无法实现它。
下面是我的代码:
function traverseObject(object1, object2) {
var key1;
var key2;
for (key1 in object1) {
for (key2 in object2) {
console.log('Key1 is -' + key1);
//console.log('Key2 is -'+key2);
if (object1.hasOwnProperty(key1) || object2.hasOwnProperty(key2)) {
console.log('Value1 ' + object1[key1]);
console.log('Value2 ' + object2[key2]);
if ((object1[key1] !== null && typeof object1[key1] === 'object') || (object2[key2] !== null && typeof object2[key2] === 'object')) {
process(object1[key1], object2[key2]);
}
}
}
}
}
Bu使用它首先运行外部循环,然后读取所有内部循环值,然后读取外部循环的第二个值,然后再次读取内部循环的所有值。
我想要的是,它可以同时运行,以便我可以比较它们的值。
答案 0 :(得分:5)
您可以遍历两个对象中的所有键:
for(const key of [...new Set(Object.keys(object1).concat(Object.keys(object2))]) {
if(key in object2) process(object1[key], object2[key]);
}