【问题标题】:How to compare values of two array [duplicate]如何比较两个数组的值[重复]
【发布时间】:2021-06-14 00:22:07
【问题描述】:

我有两个 Array 称为用户和受邀用户

const users = [ {name:'dfd', email: 'gd12@gmail.com'},{name:'fgf', email: 'gfgf12@gmail.com'}]
const invitedUser= [ {name:'aaa', email: 'gd12@gmail.com'},{name:'aaa', email: 'rt@gmail.com'}]

现在我想在用户的电子邮件与受邀用户的电子邮件匹配时过滤掉对象。例如:

// if -- users.email === invitedUser.email

我知道这可以通过使用过滤器方法来完成,但这里都是数组,我从来没有同时使用两个数组并比较值。任何解决方案

【问题讨论】:

标签: javascript arrays


【解决方案1】:
const invented = users.filter(isUserInvented);

function isUserInvented(user){
       return invitedUser.find(u=> u.email == user.email)
}

【讨论】:

    【解决方案2】:

    Array.prototype.filter 是你的朋友。

    const users = [{
      name: 'dfd',
      email: 'gd12@gmail.com'
    }, {
      name: 'fgf',
      email: 'gfgf12@gmail.com'
    }];
    
    const invitedUsers = [{
      name: 'aaa',
      email: 'gd12@gmail.com'
    }, {
      name: 'aaa',
      email: 'rt@gmail.com'
    }];
    
    const overlap = users.filter(user => invitedUsers.some(invite => user.email === invite.email));
    
    console.log(overlap);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      • 2012-01-31
      • 2012-09-02
      • 2014-12-08
      • 1970-01-01
      相关资源
      最近更新 更多