in_array für javascript???
Martin
- javascript
0 wahsaga0 Christian Seiler0 peterS.
0 peterS.
hallo!
gibt es in js ein äquivqlent zu php=>in_array()?
ich möchte keine schleife bauen, sondern direkt auf ein bestimmtes array zugreifen..
danke
martin
hi,
gibt es in js ein äquivqlent zu php=>in_array()?
nein.
ich möchte keine schleife bauen
musst du aber, wenn du eine vergleichbare funktionalität haben willst.
gruss,
wahsaga
Hallo Martin,
gibt es in js ein äquivqlent zu php=>in_array()?
ich möchte keine schleife bauen, sondern direkt auf ein bestimmtes array zugreifen..
Du kannst es "nachrüsten":
Array.prototype.contains = function (elem) {
var i;
for (i = 0; i < this.length; i++) {
if (this[i] == elem) {
return true;
}
}
return false;
};
var b = new Array (1, 2, 4);
alert (b.contains (1));
alert (b.contains (2));
alert (b.contains (3));
alert (b.contains (4));
Viele Grüße,
Christian
gruss Christian,
da waren wir ja fast zeitgleich mit
aehnlichen loesungen zur stelle - aber:
for (i = 0; i < this.length; i++) {
if (this[i] == elem) {
trifft es nicht ganz, da dann Deinem test folgend
nicht nur "b.contains(2)" sondern eben auch
"b.contains('2')" gelten wuerde, was aber bei
konservativer auslegung nicht zulaessig sein sollte;
return true;
}
}
besser waere "if (this[i] === elem)" -
noch besser "if (this[i].equals(elem)",
wobei "Object.prototype.equals = function(obj) {...};"
noch zu schreiben waere;
by(t)e by(t)e - peterS. - pseliger@gmx.net
gruss Martin,
ich kenne mich mit php ueberhaupt nicht aus,
falls Du aber so etwas wie eine methode
"contains" suchts, kann Dir geholfen werden:
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;
};
wobei es noch besser waere, statt "this[i] === obj"
einen noch zu schreibenden Object-prototypen namens
"equals" zu verwenden (z.b.: "this[i].equals(obj)");
so long - peterS. - pseliger@gmx.net
Hallo Peter,
Array.prototype.contains = function(obj) {
Geil, 1 Frage, 2 Leute und eine fast identische Funktion. :-)
Viele Grüße,
Christian
gruss
Geil, 1 Frage, 2 Leute und eine fast identische Funktion. :-)
jo, evolution ist schon eine feine sache - hier sogar koevolution ;-)
by(t)e by(t)e - peterS. - pseliger@gmx.net