Javascript ist Toll!

6. Oktober 2005 - 12:32

doppelte Array Einträge entfernen

Doppelte Einträge in einem Array lassen sich am effektivsten über ein Objekt entfernen. Der Trick dabei ist, das ein Objektattribut nicht doppelt vorkommen kann und somit ist ein Attribut, dass mehrmals zugewiesen wird nur einmal vorhanden.

Die Umsetzung erfolgt über Array.prototype dann läßt sich diese Funktion auf jedes Array anwenden.

Der Code sieht folgendermaßen aus:

Array.prototype.unique = function() {
    var o = {};
    var tmp = [];
    for(var i = 0 ; i < this.length; i++) o[this[i]] = true;
    for(var i in o) tmp[tmp.length] = i;
    return tmp;
}

Und der Test: Klick

ähnliche Artikel

Comments (6)
13105 mal gelesen.

6 Kommentare

Leave a comment »

Seiten:

1. Kommentar von: danke
24. März 2009: 11:43

Hallo,

echt absolut geschickt die Idee. Es hat etwas gedauert bis ich’s kapiert habe, aber es ist echt gut.
nur var o = {} verstehe ich nicht ganz. Wird damit ein „leeres“ Objekt deklariert?

2. Kommentar von: Struppi
24. März 2009: 16:09

Ja, das ist ein Objekt Literal. Genauer beschrieben wird das in diesem
selfhtml Artikel.

3. Kommentar von: Harald Krings
17. Oktober 2011: 13:53

Hallo,

tolle Lösung! Da muss man mal erst drauf kommen.
Es ist manchmal eine gute Lösung, System-„Begrenzungen“ zu nutzen im positiven Sinne, wenn man das so nennen kann.

L.G
Härry

4. Kommentar von: Rolf
20. November 2016: 20:33

Affengeil!

siehe URL…

Herrzlichen Dank und schreib mal wieder ;)

–Rolf

5. Kommentar von: DasTeam
16. Juni 2021: 12:20

Kongeniale Funktion! Sehr nützlich auch noch 16 Jahre nach Veröffentlichtung!

6. Kommentar von: struppi
16. Juni 2021: 12:50

Danke!

Könnte man aber heute auch etwas kürzer formulieren:

Array.prototype.unique = function(){
var o = {};
for(var i = 0 ; i < this.length; i++) o[this[i]] = true; return Object.keys(o); };

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Powered by WordPress Stop Spam Harvesters, Join Project Honey Pot
marketing-bankruptcy
marketing-bankruptcy
marketing-bankruptcy
marketing-bankruptcy