检查充满对象的数组中是否存在元素
Checking for the existence of an element in array full of objects
我有一个喜欢的数组,其中包括喜欢 post 的用户的 ID(这最初是一个猫鼬模型)。我想检查用户的id是否在数组中。
const likes =
[
{
"user": "6283986e931a243f64eb063e"
},
{
"user": "6283986e931a243f64eb0123s"
},
]
const user = "6283986e931a243f64eb063e";
const hasBeenLiked = Object.values(likes).includes(user);
console.log(hasBeenLiked) //returns false
显然我不能这样检查。我知道我可以用循环来做到这一点,但我想要更轻量级的方法(如果可能的话)。
原代码为:
const hasBeenLiked = Object.values(article.likes).includes(req.headers.user);
如果不使用循环就无法做到这一点,是否有猫鼬命令?
你可以这样做:
const hasBeenLiked = !!likes.find(l => l.user == 用户)
使用Array.prototype.some()
const hasBeenLiked = likes.some(like => like.user === user);
我有一个喜欢的数组,其中包括喜欢 post 的用户的 ID(这最初是一个猫鼬模型)。我想检查用户的id是否在数组中。
const likes =
[
{
"user": "6283986e931a243f64eb063e"
},
{
"user": "6283986e931a243f64eb0123s"
},
]
const user = "6283986e931a243f64eb063e";
const hasBeenLiked = Object.values(likes).includes(user);
console.log(hasBeenLiked) //returns false
显然我不能这样检查。我知道我可以用循环来做到这一点,但我想要更轻量级的方法(如果可能的话)。
原代码为:
const hasBeenLiked = Object.values(article.likes).includes(req.headers.user);
如果不使用循环就无法做到这一点,是否有猫鼬命令?
你可以这样做:
const hasBeenLiked = !!likes.find(l => l.user == 用户)
使用Array.prototype.some()
const hasBeenLiked = likes.some(like => like.user === user);