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
,否则结果将包含空对象。