Viac na
Ako zistiť, či pole obsahuje určitý reťazec v JavaScripte/jQuery?
Vie mi niekto povedať, ako zistiť, či sa v poli vyskytuje "specialword"
? Príklad:
categories: [
"specialword"
"word1"
"word2"
]
564
3
jQuery ponúka
$.inArray
:Všimnite si, že inArray vracia index nájdeného prvku, takže
0
znamená, že prvok je prvý v poli.-1
znamená, že prvok nebol nájdený.Upraviť o 3,5 roka neskôr
$.inArray
je v skutočnosti obal preArray.prototype.indexOf
v prehliadačoch, ktoré ho podporujú (v súčasnosti takmer všetky), pričom v tých, ktoré ho nepodporujú, poskytuje shim. Je to v podstate ekvivalentné pridaniu shimu doArray.prototype
, čo je idiomatickejší/JSish spôsob, ako robiť veci. MDN poskytuje takýto kód. V dnešnej dobe by som radšej využil túto možnosť, ako používať wrapper jQuery.Upraviť o ďalšie 3 roky neskôr
Bože, 6,5 roka?!
Najlepšou možnosťou v modernom Javascripte je
Array.prototype.includes
:Žiadne porovnávanie a žiadne mätúce výsledky
-1
. Robí to, čo chceme: vraciatrue
alebofalse
. V starších prehliadačoch je možné ho polyfillovať pomocou kódu na MDN.Tu máte:
Táto funkcia vráti kladné celé číslo (index poľa danej hodnoty) alebo
-1
, ak sa daná hodnota v poli nenašla.Živá ukážka: http://jsfiddle.net/simevidas/5Gdfc/
Pravdepodobne ju budete chcieť použiť takto:
Môžete použiť cyklus
for
: