Hallo Gregor,
gibt es so nicht fertig, ich mache das so:
/*int*/Array.prototype.addElementIfNotExist=function(/*object*/o)
{
var p = this.indexOf(o);
if (p<0)
{
this.push(o);
return this.length;
}
return p;
}
/*int*/ Array.prototype.indexOf=function(/*any*/value, /*string\int*/field, /*int*/ startPosition)
{
var l = this.length;
if ( startPosition == null) startPosition = 0;
if ( startPosition < 0) startPosition = l+startPosition;
if ( startPosition < 0) startPosition = 0;
if (field == null)
{
for (var i = startPosition; i if (this==value) return i;
}
else
{
for (var i = startPosition; i if (this[field]==value) return i;
}
return -1;
}
Falls du ein bestimmetes Feld eines neuen Objektes mit einem bereits vorhandenen Objektes vergleichen willst, musst Du addElement erweitern.
Aufruf:
DeineListe.addElementIfNotExist(element);
Rückgabe: Pointer auf das Element.
Stelle die beiden Prototypen an den Anfang Deines Skriptes.
Ich hoffe, ich habe nichts übersehen.