Это сводит меня с ума в течение нескольких часов, взгляните на этот простой цикл:значения соответствия не признается соответствие
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' ]
, которые работали и генерируемый ожидаемый выход.
Но я не могу понять, почему «настоящая» версия этого не делает. При просмотре вывода я не вижу проблемы.
Подсказки оценены! Thanks
Проверить 'length' обеих строк, если отличаются использовать' подрезать() ' – Tushar
Try: если (trimuser._id.trim() === req.body.dogId.trim()) { –
после проверяя предложение от Tushar ... Совет, попробуйте использовать 'string.localeCompare (param)' –