提问人:Lux 提问时间:2/10/2023 最后编辑:Lux 更新时间:2/10/2023 访问量:25
字符串相等性未产生预期的输出
String equality not producing expected output
问:
我试图将两个变量等同于其他一些代码,但尽管是相同的字符串,我还是一直得到错误。这是我写的代码:
app.post('/deletegraph', requireLogin, async (req, res) => {
let {graph_name} = req.body
console.log(graph_name)
const user = await User.findById(req.session.user_id)
console.log(user.graphs)
for (let graph of user.graphs) {
console.log(graph[1])
console.log(graph_name)
console.log(graph[1] === graph_name)
}
res.redirect('/graphs')
})
这是终端中的输出:
xsquared
[
[ 'http://localhost:3000/', 'xsquared', '.png' ],
[ 'http://localhost:3000/', '2 exponent x', '.png' ]
]
xsquared
xsquared
false
2 exponent x
xsquared
false
正如你所看到的,我的graph_name变量等于'xsquared',在user.graphs的第一次迭代中,graph[1]等于'xsquared'。这应该输出 true,但我得到 false。有谁知道怎么了?
我使用了console.log,以便我知道变量是什么,但是即使我看到它们是相同的,我也会得到false。我试过双等和三等,它们都给我错了。
答: 暂无答案
评论
console.log(encodeURIComponent(graph[1]), encodeURIComponent(graph_name))
let buff = new Buffer(graph_name);
let base64data = buff.toString('base64');
base64data
graph[1]
String()
req.body
console.log(typeof req.body, typeof graph_name);
)