jQuery inArray выдает неправильные результаты

#javascript #jquery #arrays

#javascript #jquery #массивы

Вопрос:

Я просто пытаюсь проверить, существует ли строка в массиве строк.

 console.log($.inArray(String(value.value), selectors) > 0, String(value.value), selectors);
  

Приведенный выше код дает мне результаты, которые выглядят следующим образом

 false "23" (2) ["23", "9"]
true "9" (2) ["23", "9"]
false "28" (2) ["23", "9"]
false "20" (2) ["23", "9"]
  

Без проверки inArray , равно ли > 0 оно, мои результаты выглядят так

 0 "23" (2) ["23", "9"]
1 "9" (2) ["23", "9"]
-1 "28" (2) ["23", "9"]
-1 "20" (2) ["23", "9"]
  

Почему первый возвращает значение false? Как я могу правильно определить, находится ли строка в массиве?

Ответ №1:

$.inArray() возвращает позицию в массиве найденного элемента или -1 .

Ты написал > 0 , но ты имел в виду > -1 .

Комментарии:

1. @GrumpyCrouton Это случается. 🙂