[英]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.