Meer
Hoe te vinden of een array bevat een specifieke tekenreeks in JavaScript / jQuery?
Kan iemand mij vertellen hoe ik kan detecteren of "specialword"
voorkomt in een array? Voorbeeld:
categories: [
"specialword"
"word1"
"word2"
]
564
3
jQuery biedt
$.inArray
:Merk op dat inArray de index van het gevonden element retourneert, dus
0
geeft aan dat het element de eerste in de array is.-1
geeft aan dat het element niet is gevonden.Edit 3.5 jaar later
$.inArray
is in feite een wrapper voorArray.prototype.indexOf
in browsers die dat ondersteunen (tegenwoordig bijna allemaal), terwijl het een shim biedt in browsers die dat niet ondersteunen. Het is in wezen gelijk aan het toevoegen van een shim aanArray.prototype
, wat een meer idiomatische/JSish manier is om dingen te doen. MDN biedt dergelijke code. Tegenwoordig zou ik deze optie nemen, in plaats van de jQuery wrapper te gebruiken.Edit nog eens 3 jaar later
Gosh, 6.5 jaar?!
De beste optie hiervoor in modern Javascript is
Array.prototype.includes
:Geen vergelijkingen en geen verwarrende
-1
resultaten. Het doet wat we willen: het geefttrue
offalse
terug. Voor oudere browsers is het polyfillable met behulp van de code op MDN.Alsjeblieft:
Deze functie geeft een positief geheel getal terug (de array index van de gegeven waarde), of
-1
als de gegeven waarde niet in de array werd gevonden.Live demo: http://jsfiddle.net/simevidas/5Gdfc/
Je wilt dit waarschijnlijk als volgt gebruiken:
Je kunt een
voor
lus gebruiken: