我知道 header 太复杂了,但现在就是这样。让我为您说得更清楚。
有一个像这样的对象
const users= [
{
id:"1",
name:"John",
mail:"aaa@gmail.com",
},
{
id:"2",
name:"Joe",
mail:"bbb@gmail.com",
},
]
然后就是
const attendingUsers = [
{
id:"1",
name:"John",
mail:"aaa@gmail.com",
.....
},
{
id:"2",
name:"Joe",
mail:"bbb@gmail.com",
.....
},}
]
这两个数组都有不同的属性,我只想得到对我来说很重要的那些。我需要的是查看 users
数组并找到与 attendingUsers
具有相同 ID 的那些。
我想出了 users.filter(user => user.id == attendingUsers.map(attendingUser => attendingUser.id));
但这只是返回空数组。知道解决此类问题的最佳方法是什么吗?
最佳答案
首先,您必须确保 ID 类型是否正确。 Users 的 ID 为 Number 类型,而 attendingUsers 的 ID 为 String 类型。
假设它们在下面的代码中都是相同的类型(我将使用字符串)。
您可以将 attendingUsers 数组转换为字符串数组:
const attendingUsersIds = attendingUsers.map(attendingUser => attendingUser.id)
然后将 id 与:
const matchedUsers = users.filter(user => attendingUsersIds.includes(user.id))
如果它们不是同一类型,您可以使用 user.id.toString()
将 Number 转换为 String 或 parseInt(attendingUser.id)
将字符串转换为数字。
关于javascript - 如何检查数组对象的属性是否与另一个对象数组中的值之一匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65343433/