javascript - 检查数组中是否有东西
问题描述
首先,我必须处理一个非常大的数组,所以我试图将它转换为一个Set
然后使用has()
方法来减少时间,而不是includes()
在Array
它本身上使用。
我将 myArray
转换为Set
然后使用 has 方法,并且我试图寻找的元素在该集合中,所以has()
应该返回true
,但它false
每次都会给出。
exports.DoesUserRegistredInThisEvent = catchAsync(async (req, res, next) => {
const userId = req.user.id;
const eventId = req.params.eventId;
const userCreatingReview = await User.findById(userId);
newArray = userCreatingReview.registredInEvents;
const newSet = new Set(newArray);
const bool = newSet.has(eventId);
console.log(newArray); // => ["60982947e2fe4e4eef70fcf3","609270942709952ebb6de50f"]
console.log(newSet); // => { 60982947e2fe4e4eef70fcf3, 609270942709952ebb6de50f }
console.log(eventId, typeof eventId); // => 60982947e2fe4e4eef70fcf3 string
console.log(bool); // => false
if (bool) {
next();
}
else {
return next(
new AppError('User must be registred in this event to perform this action.', 400)
);
}
});