2017-02-13 61 views
-1

如何比較兩個數組,如果找到相同的鍵,然後從第二個數組中獲取值並將其分配給第一個數組。結果是使用第一個數組。比如我有下面的數組:比較兩個數組,如果發現同一個鍵獲得第二個數組的值

var compareit = { 
      firstArray : { 
       'color': 'blue', 
       'width': 400, 
       'height': 150, 
      }, 
      secondArray: { 
       'color': 'red', 
       'height': 500, 
      }, 
    }; 

的目標是什麼,我想要的結果:{'color': 'red', 'width': '400', 'height': '500'};

真我的任何幫助讚賞...謝謝:)

回答

1

你可以使用Object.assign()將一個或多個源對象的值複製到目標對象。

var compareit = { 
 
    firstArray: { 
 
    'color': 'blue', 
 
    'width': 400, 
 
    'height': 150, 
 
    }, 
 
    secondArray: { 
 
    'color': 'red', 
 
    'height': 500, 
 
    }, 
 
}; 
 

 
Object.assign(compareit.firstArray, compareit.secondArray); 
 
console.log(compareit.firstArray)

如果你不想操縱現有的對象compareit.firstArray

var compareit = { 
 
    firstArray: { 
 
    'color': 'blue', 
 
    'width': 400, 
 
    'height': 150, 
 
    }, 
 
    secondArray: { 
 
    'color': 'red', 
 
    'height': 500, 
 
    }, 
 
}; 
 

 
var obj = {}; 
 
Object.assign(obj, compareit.firstArray, compareit.secondArray); 
 
console.log(obj, compareit)

+0

非常感謝你:) –

0

你可以通過第一陣列在性能循環,並檢查如果第二個數組中存在相同的屬性。

var compareit = { 
 
    firstArray: { 
 
    'color': 'blue', 
 
    'width': 400, 
 
    'height': 150, 
 
    }, 
 
    secondArray: { 
 
    'color': 'red', 
 
    'height': 500, 
 
    }, 
 
}; 
 
var result = {}; 
 
for (var key in compareit.firstArray) { 
 
    if (key in compareit.secondArray) { 
 
    result[key] = compareit.secondArray[key]; 
 
    } else { 
 
    result[key] = compareit.firstArray[key]; 
 
    } 
 
} 
 
console.log(result);

+0

非常感謝你:) –

0

var compareit = { 
 
      firstArray : { 
 
       'color': 'blue', 
 
       'width': 400, 
 
       'height': 150, 
 
      }, 
 
      secondArray: { 
 
       'color': 'red', 
 
       'height': 500, 
 
      }, 
 
    }; 
 
var result, 
 
    compareObjects=function(comp){ 
 
     return Object.assign(comp.firstArray, comp.secondArray); 
 
    }; 
 

 
result=compareObjects(compareit); 
 
console.log(result);

+0

非常感謝你:) –

相關問題