在 JavaScript 中獲取兩個物件之間屬性的差異
假設我們有兩個物件,它們具有相似的鍵值對,其中一個鍵在兩個物件中具有不同的值。我們的工作是編寫一個函式,它將兩個物件作為引數並返回它找到的第一個具有不同值的鍵。如果所有鍵具有完全相同的值,則應返回 -1。
示例物件如下 −
const obj1 = {
name: 'Rahul Sharma',
id: '12342fe4554ggf',
isEmployed: true,
age: 45,
salary: 190000,
job: 'Full Stack Developer',
employedSince: 2005
}
const obj2 = {
name: 'Rahul Sharma',
id: '12342fe4554ggf',
isEmployed: true,
age: 45,
salary: 19000,
job: 'Full Stack Developer',
employedSince: 2005
}我們將使用 forEach() 迴圈獲取兩個物件,檢查兩個物件中的相等性,如果任何一點上的值不匹配,我們將更新一個標誌,退出迴圈並返回特定鍵。如果我們遍歷整個迴圈,則表示一切都匹配,在這種情況下,我們將返回 -1。
完整的程式碼如下 −
示例
const obj1 = {
name: 'Rahul Sharma',
id: '12342fe4554ggf',
isEmployed: true,
age: 45,
salary: 190000,
job: 'Full Stack Developer',
employedSince: 2005
}
const obj2 = {
name: 'Rahul Sharma',
id: '12342fe4554ggf',
isEmployed: true,
age: 45,
salary: 19000,
job: 'Full Stack Developer',
employedSince: 2005
}
const difference = (obj1, obj2) => {
let keyFound = false;
Object.keys(obj1).forEach(key => {
if(obj1[key] !== obj2[key]){
return keyFound = key;
}
});
return keyFound || -1;
};
console.log(difference(obj1, obj2));輸出
控制檯中的輸出將為 −
salary
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP