在 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