匹配值不被识别为匹配
matching values is not recognized as matching
本文关键字:识别 更新时间:2023-09-26
这已经让我疯狂了几个小时了,看看这个简单的循环:
myEvent.users.forEach( function( user ){
console.log(user._id + ' ' + req.body.dogId );
if ( user._id === req.body.dogId ){
console.log('yay..');
}else {
console.log('no match');
}
});
生成以下输出:
// 560d2cd0475f9ca012a7b2b2 560d2cd0475f9ca012a7b2b2
// no match
// 560d2cdd475f9ca012a7b2b3 560d2cd0475f9ca012a7b2b2
// no match
// 5613c6ee71dfaeac24371082 560d2cd0475f9ca012a7b2b2
// no match
第一个Item是匹配的,但没有被识别出来。我已经尝试了几个不同的循环,结果都是一样的。
我还做了一个Array的硬编码版本:
var arr = ['5613c6ee71dfaeac24371082', '560d2cdd475f9ca012a7b2b3','5613c6ee71dfaeac24371082' ]
工作并产生预期的输出。
但我不明白为什么"真正的"版本没有。当查看输出时,我看不出有什么问题。
提示赞赏!由于
我认为这个问题是由于您正在比较的两个值的数据类型的差异。===
(相等值和相等类型)运算符比较数据的值和类型。在比较之前,使用String(object)
函数将Object类型的值转换为字符串。
myEvent.users.forEach( function( user ){
console.log(user._id + ' ' + req.body.dogId );
if ( String(user._id) === req.body.dogId ){
console.log('yay..');
}else {
console.log('no match');
}
});
相关文章:
- 如何识别我的网站中的慢速设备
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- AngularJS指令只识别双向绑定类型
- php脚本中无法识别ajax传递的值
- 识别没有ID或特定属性的对象
- JavaScript无法识别图像
- 识别由不同数量的项组成的json对象
- 无法识别从php创建的Js函数
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 函数无法识别初始化的变量
- 具有带大括号的字符串时无法识别的表达式
- 在Fiddler JavaScript中识别POST请求
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]
- javascript正则表达式来识别所有特殊字符
- 确定(识别)dc.js图表类型
- Ionic应用程序无法识别android手机中的语音
- node.js可以识别字符模式,但不能识别数字模式
- 数据切换=“;按钮”;在JavaScript中无法识别引导程序单选按钮
- 通过单击事件识别画布上的对象
- 使用jQuery+Javascript识别一个空文本节点