Javascript 防止.map为不带';我不符合一定的标准

Javascript 防止.map为不带';我不符合一定的标准,javascript,Javascript,我有以下代码: const fetchUsers = async () => { const users = [ { id: 27, email: 'support@domo.com' }, { id: 12754, email: 'gilberthigley@email.com' }, { id: 12158, email: 'springcreek@email.com' }, { id: 698115737, email: 'atroxler@email.com'

我有以下代码:

const fetchUsers = async () => {

const users = [
   { id: 27, email: 'support@domo.com' },
  { id: 12754, email: 'gilberthigley@email.com' },
  { id: 12158, email: 'springcreek@email.com' },
  { id: 698115737, email: 'atroxler@email.com' },

]

const userAccessTable = 
  [
  {
    id: 12754,
    WorkEmail: 'gilberthigley@email.com',
    ClubNumber: '7908'
  },
  {
    id: 12158,
    WorkEmail: 'springcreek@email.com',
    ClubNumber: '7729'
  },
  {
    id: 4040,
    WorkEmail: 'dduschen@email.com',
    ClubNumber: '6437'
  },
  {
    id: 4040,
    WorkEmail: 'dduschen@email.com',
    ClubNumber: '6438'
  },
]


const userAccess = await Promise.all(
    users.map(user => {
      let res
      userAccessTable.map(data => {
        if (data.WorkEmail.toLowerCase().includes(user.email)) {
        return res =  {
            userId: user.id,
            club: data.ClubNumber,
            email: data.WorkEmail
          }
        }
      })
      return res
    })
)


console.log(userAccess)



}

fetchUsers()
我试图用userAccessTable交叉引用用户,如果他们有相同的电子邮件,则将对象设置为一个变量,但由于我当前在映射时正在这样做,因此得到以下输出:

[ 
    undefined,
    { userId: 12754, club: '7908', email: 'gilberthigley@email.com'},
    { userId: 12158, club: '7729', email: 'springcreek@email.com' },
    undefined 
]

对于没有类似电子邮件的结果,是否有方法防止未定义的值返回?这是一个repl.it链接

Ciao,您可以将
res
初始化为空对象,如下所示:

const用户=[
{id:27,电子邮件:'support@domo.com' },
{id:12754,电子邮件:'gilberthigley@email.com' },
{id:12158,电子邮件:'springcreek@email.com' },
{id:698115737,电子邮件:'atroxler@email.com' },
]
const userAccessTable=
[
{
id:12754,
工作电子邮件:'gilberthigley@email.com',
俱乐部编号:“7908”
},
{
身份证号码:12158,
工作电子邮件:'springcreek@email.com',
俱乐部编号:“7729”
},
{
身份证号码:4040,
工作电子邮件:'dduschen@email.com',
俱乐部编号:“6437”
},
{
身份证号码:4040,
工作电子邮件:'dduschen@email.com',
俱乐部编号:“6438”
},
]
让结果=users.map(user=>{
设res={}
userAccessTable.map(数据=>{
if(data.WorkEmail.toLowerCase().includes(user.email)){
返回res={
userId:user.id,
俱乐部:data.ClubNumber,
电子邮件:data.WorkEmail
}
}
})
返回res
})

console.log(result)
如何过滤
map
ped数组?id:4040,在userAccessTable中使用两次。id应该是唯一的相似id是同一个用户,就第一个解决方案而言,他可以访问不同的俱乐部,有没有办法防止这些空对象被返回,或者因为我正在映射,所以不管发生什么都会发生what@CodeMonkey我用一个可能的解决方案更新了我的答案,结果中没有空对象。无论如何,是的,
map
始终返回一个值,因此,或者切换到
forEach
,否则结果将包含空对象。