我知道在这结束时我会感到愚蠢,但我一直在努力...
if (user._id == req.params.id) {
console.log("match");
} else {
console.log("'" + user._id + "' does not match '" + req.params.id + "'");
}
这可行,比较两个相同的字符串并查找匹配项。但我的jshint告诉我使用我理解的===
运算符===
来表示类型也会被检查。
替换'
我的测试失败,生成控制台输出,如;
'56e0a2085b89105924963dc3'与'56e0a2085b89105924963dc3'不匹配
我认为刻度new String
证明两端都没有空格。该文章表明类型不匹配或其中一个字符串是使用class Vector {
x: number;
y: number;
constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
add(that: Vector) {
return new Vector(this.x + that.x, this.y + that.y);
}
}
export = Vector;
构造函数创建的,但我不控制生成这些字符串的代码。我该怎么办?
答案 0 :(得分:6)
看起来你正在使用mongodb来获取objectId(我从语法中假设)。您应该检查user._id是否实际上是一个字符串而不是“ObjectId”对象。您可以暂停执行或只使用typeof运算符来查看user._id实际上是否为字符串。