如何在一个循环中迭代以比较 javascript 中的两个对象

Upk*_*ngh 2 javascript arrays object

我有两个对象,我想将它们相互比较,就像我需要并行检查和赋值,但为此我只需要执行一个 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]);
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Bu使用它第一次运行外循环,然后读取所有内循环值,然后读取外循环的第二个值,然后再次读取内循环的所有值。
我想要的是,这同时运行,以便我可以比较它们的值。

Jon*_*lms 5

您可以遍历两个对象中的所有键:

  for(const key of [...new Set(Object.keys(object1).concat(Object.keys(object2))]) {
    if(key in object2) process(object1[key], object2[key]);
  }
Run Code Online (Sandbox Code Playgroud)