Frederik: Überprüfen, ob Element in Array vorkommt

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

  1. 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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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...

      1. 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

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. 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

  2.   
    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

    1. 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

      1. 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