【问题标题】:JS compare two objects. Return key of changed value(s)JS 比较两个对象。更改值的返回键
【发布时间】:2020-05-04 11:48:24
【问题描述】:

我正在尝试比较两个对象并返回更改值的键。

 const a = {
    email: 'john@doe.nl',
    first_name: 'john',
    last_name: 'doe',
 };

 const b = {
    email: 'peter@doe.nl',
    first_name: 'peter',
    last_name: 'doe',
 };

现在我有:

 Object.entries(user).reduce((key, val) => {
   // Got the key and val
   // Compare the second object against the key/val?
 });

预期: 这改变了:电子邮件和名字

【问题讨论】:

    标签: javascript object compare


    【解决方案1】:

    您可以尝试使用filter

    Object.keys(a).filter( key => a[key] !== b[key] )

    这假定ab 具有相同的键。 a 中的任何新键都将显示为已更改。

    【讨论】:

      【解决方案2】:

      您可以遍历其中一个对象并检查第二个对象中的键是否具有相同的值

      const a = {
        email: 'john@doe.nl',
        first_name: 'john',
        last_name: 'doe',
      };
      
      const b = {
        email: 'peter@doe.nl',
        first_name: 'peter',
        last_name: 'doe',
      };
      
      for (let keys in a) {
        if (b[keys] && a[keys] !== b[keys]) {
          console.log(keys)
        }
      
      }

      【讨论】:

        猜你喜欢
        • 2021-07-10
        • 1970-01-01
        • 1970-01-01
        • 2021-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多