在 JavaScript 中获取两个对象之间的差异属性
javascriptweb developmentobject oriented programming更新于 2025/9/25 22:36:17
假设我们有两个对象,它们具有相似的键值对,但其中一个键在两个对象中的值不同。我们的工作是编写一个函数,将这两个对象作为参数,并返回它找到的第一个具有不同值的键。如果所有键都具有完全相同的值,则应返回 -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
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

