#javascript
#javascript
Вопрос:
Я пытаюсь создать цикл в массиве, который содержит некоторые номера мест в автобусе. но она всегда возвращает значение false .
alert(response.reservedseats.indexOf("1"));//this line works and gives true
for (i = 1; i < 13; i ) {
if ( response.reservedseats.indexOf(i) > -1 ) { //This always gives -1 and there are some true conditions so it's give not found
alert("done");
}
else{
alert('not found');
}
}
Комментарии:
1. попробуйте
.indexOf(i.toString())
или.indexOf(i '')
2. @omarmosad — это сложно отладить, не представив полностью автономный пример. дайте нам, что есть,
response.reservedseats
и это должно работать нормально?3. Java не имеет никакого отношения к javascript. Пожалуйста, удалите тег java.
Ответ №1:
Вероятно, происходит то, что ваш массив объектов представляет собой массив строк, в то время как в вашем цикле for вы пытаетесь найти индекс числа — «1» не совпадает с 1.
Самый простой способ исправить это — преобразовать число в строку.
"" i;
а затем используйте это вместо i
if ( response.reservedseats.indexOf("" i) > -1 ) {