У меня есть массив с числами ListIds
, и мне нравится проверять, содержит ли он мой идентификатор пользователя myId
, но по какой-то странной причине он продолжает возвращать no match
, что я делаю неправильно здесь?Проверка Javascript, если массив содержит значение
var ListIds = object.ListFolowers; // = 33,34,35
var myId = userProfileID2_class; // = 33
if(ListIds.indexOf(myId)>=0){
debug_log('Value exist');
} else {
debug_log('no match');
}
пс, если я изменить if(ListIds.indexOf(myId)>=0)
к if(ListIds.indexOf(33)>=0)
это работает ...
Fixit его путем добавления к +
if(ListIds.indexOf(+myId)>=0){
Не знаю, потому что вы не предоставили нам никаких реальных данных, но предполагалось бы, что вы сравниваете строки с числами, которые не будут работать с '.indexOf()'. Попробуйте добавить '+' перед 'myId', когда вы передадите его в' indexOf() '. –
[Невозможно воспроизвести] (https://jsfiddle.net/xpn7c2wx/). Если 'indexOf (33)' работает, но 'indexOf (myId)' does not, это явно означает, что 'myId' не' 33'. Проверьте 'myId === 33', и вы увидите. – Oriol
Код выглядит корректно для меня. Является ли 'ListIds' фактически массивом чисел и что такое' myId'? –