Więcej
Jak sprawdzić, czy tablica zawiera określony ciąg znaków w JavaScript/jQuery?
Czy ktoś może mi powiedzieć, jak wykryć, czy "specialword"
pojawia się w tablicy? Przykład:
categories: [
"specialword"
"word1"
"word2"
]
564
3
jQuery oferuje
$.inArray
:Zauważ, że inArray zwraca indeks znalezionego elementu, więc
0
wskazuje, że element jest pierwszym w tablicy.-1
wskazuje, że element nie został znaleziony.Edycja 3,5 roku później.
$.inArray
jest efektywnie wrapperem dlaArray.prototype.indexOf
w przeglądarkach, które to wspierają (prawie wszystkie z nich w dzisiejszych czasach), jednocześnie zapewniając shim w tych, które tego nie robią. Jest to w zasadzie równoważne dodaniu podkładki doArray.prototype
, co jest bardziej idiomatycznym/JSish sposobem robienia rzeczy. MDN dostarcza taki kod. W dzisiejszych czasach skorzystałbym z tej opcji, zamiast używać wrappera jQuery.Edytuj kolejne 3 lata później
Ojej, 6,5 roku?!
Najlepszą opcją dla tego w nowoczesnym Javascript jest
Array.prototype.includes
:Nie ma porównań i nie ma mylących wyników
-1
. Robi to, co chcemy: zwracatrue
lubfalse
. Dla starszych przeglądarek jest to'polifillable używając kodu na MDN.Proszę bardzo:
Funkcja zwraca dodatnią liczbę całkowitą (indeks tablicy podanej wartości), lub
-1
jeżeli podana wartość nie została znaleziona w tablicy.Live demo: http://jsfiddle.net/simevidas/5Gdfc/
Prawdopodobnie będziesz chciał użyć tego w ten sposób:
Możesz użyć pętli
for
: