поиск переменной в массиве в javascript

#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 ) {