检查充满对象的数组中是否存在元素

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);