簡體   English   中英

如何在一個循環中迭代以比較 javascript 中的兩個對象

[英]How iterate in one loop for compare the two objects in javascript

我有兩個對象,我想將它們相互比較,就像我需要並行檢查和賦值一樣,但為此我只需要執行一個 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使用它第一次運行外循環,然后讀取所有內循環值,然后讀取外循環的第二個值,然后再次讀取內循環的所有值。
我想要的是,這同時運行,以便我可以比較它們的值。

您可以遍歷兩個對象中的所有鍵:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM