获取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

以上是 获取JavaScript中两个对象之间差异的属性 的全部内容, 来源链接: utcz.com/z/326561.html

回到顶部