gpt4 book ai didi

javascript - 比较数组内的 id 和 NodeJS 的 id 时出现无法理解的结果

转载 作者:行者123 更新时间:2023-12-03 02:20:00 24 4
gpt4 key购买 nike

我想要返回结果 true,但是 javascript 说它是 false。有人可以解释一下为什么吗?这是 console.log 的日志

5a8f1df35f65a820f4dc56ed 5a8db5d449c0572dbc60548c

false

5a91e3de5b8d6d18580c9aff 5a8db5d449c0572dbc60548c

false

5a91e3f45b8d6d18580c9b00 5a8db5d449c0572dbc60548c

false

5a8db5d449c0572dbc60548c 5a8db5d449c0572dbc60548c

.get('/selected/board', function (req, res) {
var isExist = false;

Board.findById({ _id: req.query._id })
.then((board) => {
board.users.forEach(element => {
console.log(element == req.user._id)
console.log(element, req.user._id)
});
// res.json(board);
})
.catch((err) => {
res.status(404).json('Cant download.')
})
})

编辑

element: "5a8f1df35f65a820f4dc56ed" req.user._id: "5a8db5d449c0572dbc60548c"

false

element: "5a91e3de5b8d6d18580c9aff" req.user._id: "5a8db5d449c0572dbc60548c"

false

element: "5a91e3f45b8d6d18580c9b00" req.user._id: "5a8db5d449c0572dbc60548c"

false

element: "5a8db5d449c0572dbc60548c" req.user._id: "5a8db5d449c0572dbc60548c"

true

element: "5a8f1df35f65a820f4dc56ed" req.user._id: "5a8db5d449c0572dbc60548c"

false

element: "5a91e3de5b8d6d18580c9aff" req.user._id: "5a8db5d449c0572dbc60548c"

false

element: "5a91e3f45b8d6d18580c9b00" req.user._id: "5a8db5d449c0572dbc60548c"

false

element: "5a8db5d449c0572dbc60548c" req.user._id: "5a8db5d449c0572dbc60548c"

true

最佳答案

board.users 中的元素有一个属性 id,其类型为 ObjectId("45465456464"),因此您进行的比较执行遵循以下规则:

            +--- Operand ObjectId(...)
|
v
ToPrimitive(element) == B <---- String from the request.

因此,这个条件始终为

element == req.user._id

看看这个文档 Loose equality using ==

另一种方法是转换为字符串

element.toString() == req.user._id

关于javascript - 比较数组内的 id 和 NodeJS 的 id 时出现无法理解的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49201715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com