gpt4 book ai didi

javascript - 匹配值未被识别为匹配

转载 作者:行者123 更新时间:2023-12-03 08:32:06 25 4
gpt4 key购买 nike

这已经让我抓狂了好几个小时了,看看这个简单的循环:

  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

第一个项目是匹配的,但未被识别。我尝试了几个不同的循环,但得到了相同的结果。

我还制作了数组的硬编码版本:

 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');
}
});

关于javascript - 匹配值未被识别为匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33296455/

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