在 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
广告