Überprüfen, ob Element in Array vorkommt
Frederik
- javascript
Hallo,
irgendwie stehe ich gerade auf dem Schlauch. Wahrscheinlich habe ich in letzter Zeit zu viel mit PHP gearbeitet, da geht einem der Blick für JS ein bisschen verloren...
Also, ich würde gerne überprüfen, ob ein Element in einem Array vorkommt, und dann ggf. eine Aktion ausführen. Aber dafür habe ich leider keine Methode oder Funktion à la in_array() gefunden, und mir deswegen mit der folgenden umständlichen Notation beholfen:
for (var i=0; i<meinArray.length; i++) {
if (meinArray[i]=="string") {
kommtVor = true;
}
}
if (kommtVor==true) {
...
}
Kann mir da jemand mit einem Tipp auf die Sprünge helfen?
Danke schon mal!
Liebe Grüße
Fredo
Hi,
Kann mir da jemand mit einem Tipp auf die Sprünge helfen?
gerne, wenn Du mir verrätst, worauf Du eigentlich hinauswillst. Ich würde noch ein break
einfügen, aber ansonsten wüsste ich nicht, wo es da ein großes Problem geben sollte.
Cheatah
Hm, es besteht ja auch eigentlich kein Problem. Die Notation funktioniert so, wie sie soll. Meine einzige Frage war, ob es nicht eine kürzere Schreibweise für sowas gibt, da es mir so doch sehr umständlich vorkommt. Aber vielleicht hat JavaScript da auch einfach nichts besseres. Ich hatte an etwas in der Art gedacht:
if (meinArray.hasElement("string")){
...
}
Keine Ahnung, ob es etwas in der Richtung gibt...
Hi,
Meine einzige Frage war, ob es nicht eine kürzere Schreibweise für sowas gibt, da es mir so doch sehr umständlich vorkommt.
ach so. Nein.
Aber vielleicht hat JavaScript da auch einfach nichts besseres.
Es gibt den in-Operator, welcher allerdings die Keys betrachtet; also im Falle des "klassischen" (nicht assoziativen) Arrays die Nummern.
if (meinArray.hasElement("string")){
Keine Ahnung, ob es etwas in der Richtung gibt...
Du kannst dem Array-Objekt eine entsprechende Methode per Prototyping hinzufügen.
Cheatah
Hi Cheatah,
if (meinArray.hasElement("string")){
Keine Ahnung, ob es etwas in der Richtung gibt...Du kannst dem Array-Objekt eine entsprechende Methode per Prototyping hinzufügen.
Das mit dem Prototyping kannte ich noch gar nicht. Ist aber eine schöne Sache, habe ich gleich mal ausprobiert.
Danke und Gruß
Fredo
function in_array(a,p){
for (i=0;i<a.length;i++)
if (a[i] == p) return true
return false
}
Aufruf mit: [code lang=javascript]if (in_array(ArrayName,Element))...
Hghzk
HTV
Hi HTV!
Danke für den Tipp. Das ist für größere Skripte sicherlich eine gute Alternative. Da ich es aber für eine ganz kurze Sache brauche, lohnt es sich dann eigentlich nicht, eine separate Funktion zu notieren.
Lieben Gruß
Fredo
Hi HTV!
Naaaabnd, Fredo!
Danke für den Tipp. Das ist für größere Skripte sicherlich eine gute Alternative. Da ich es aber für eine ganz kurze Sache brauche, lohnt es sich dann eigentlich nicht, eine separate Funktion zu notieren.
Es lohnt sich *immer*, eine Funktion zu notieren, die immer wieder mal gebraucht wird.
Ansonsten kannst Du's auch einzeln einzeilig verwenden, wenn Du's unbedingt umständlich haben willst. Ich bevorzuge simple Aufrufe.
mfg
HTV