Überprüfen, ob wert in Array enthalten
mdkiller
- javascript
Hallo Forum!
Gibt es in JS eine Möglichkeit, zu überprüfen, ob ein Wert in einem Array enthalten ist?
Gruß
mdkiller
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
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
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
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