mdkiller: Überprüfen, ob wert in Array enthalten

Hallo Forum!

Gibt es in JS eine Möglichkeit, zu überprüfen, ob ein Wert in einem Array enthalten ist?

Gruß

mdkiller

  1. Gibt es in JS eine Möglichkeit, zu überprüfen, ob ein Wert in einem Array enthalten ist?

    Ja, du gehst das Array durch und vergleichst das Element mit deinem Wert. Wo ist das Problem?
    Gunnar

    --
    Good results come from experience; and experience comes from bad results.
    1. Hallo Gunnar!

      Ja, du gehst das Array durch und vergleichst das Element mit deinem Wert. Wo ist das Problem?

      Ich dachte, es gäbe so eine schöne Funktion wie z.B. in PHP: in_array() . Na gut, also doch manuell basteln. Auf jeden Fall danke!

      Gruß

      mdkiller

      1. Hi,

        Ich dachte, es gäbe so eine schöne Funktion wie z.B. in PHP: in_array() . Na gut, also doch manuell basteln.

        Is nicht so wild:
        var xyz = new Array("la","le","lu");

        function is_in_array(arr,str) {
         for(i in arr) {if (arr[i] == str) return true;}
         return false;
        }

        if (is_in_array(xyz,"lu")) alert("jep");

        Gruesse  Joachim

        1. gruss Joachim,

          Is nicht so wild:
          var xyz = new Array("la","le","lu");

          function is_in_array(arr,str) {
          for(i in arr) {if (arr[i] == str) return true;}

          ------------------------------^^

          ist aber auch nicht ganz richtig, denn:
          (0 == "") ist true,
          (false == "") ist true,
          (false == 0) ist true ... usw. ;

          fuer solche faelle benoetigt man den
          identitaetsoperator ===, eine moegliche
          array-methode "contains" saehe dann so aus:

          Array.prototype.contains = function(obj) {
              var i, listed = false;
              for (i=0; i<this.length; i++) {
                if (this[i] === obj) {
                  listed = true;
                  break;
                }
              }
              return listed;
            };

          jetzt koennte ma z.b. schreiben:

          var arr = ["la","le","lu"];
            var x = "blubb";
            var y = "le";

          alert("arr.contains("" + x + "") = " + arr.contains(x) + "\narr.contains("" + y + "") = " + arr.contains(y));

          noch besser als der vergleich mit ===
          innerhalb der array methode "contains"
          waere eine weitere fuer javascript noch
          zu schreibende methode "Object.prototype.equals",
          die man dann im falle von "contains" so
          implementieren wuerde:

          if (this[i].equals(obj)) {
                  listed = true;
                  break;
                }

          tschoe - peterS. - pseliger@gmx.net

          --
          sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)