Mitten aus dem Alltag +

Da war es wieder, eine übliche Aufgabe, die man möglichst elegant hinter sich bringen will.
Heute: ein Objekt aus einem Array entfernen.

  1. pures Javascript mit for-Iterator und splice
  2. die passende Prototype-Funktion finden
  3. bekannte Prototype-Funktion entsprechend erweitern

Die erste Möglichkeit hat meist noch einmal mehr Fallstricke als eigentlich gedacht. Auch in Java denkt man beim Löschen von Elementen mit einem Iterator etwas um die Ecke. Prototype hat zwar eine Funktion without, diese funktioniert aber nicht bei verschiedenen Objekten, die attributweise gleich sind. Java-Konstrukte wie die Implementierung eines Interfaces Comparable sind nicht vorhanden, also bleibt eine nette Prototype-Funktion entsprechend abzuwandeln.

this.value = this.value.reject(function(tmpValue) {
    return tmpValue[this.idProperty] === valueObject[this.idProperty];
}.bind(this));

Liest sich eigentlich ganz gut, wenn man sich schon an die ganzen Javascript-Konstrukte wie anonyme Funktionen und bind gewöhnt hat.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>