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
- 13. Mai 2009 -- String Erweiterungen (5)
Eine der Eigenschaften von Javascript, die sie von...
- 31. August 2007 -- Wie kann man ein Array mischen? (2)
Ich hab mal wieder ein altes Stück Code ausgegraben,...
- 28. November 2024 -- Animierte Tabellen Sortierung (10)
Aufgrund einer Frage bei meinem alten Tabellensortierer-Skript...
Comments (6)
14211 mal gelesen.
14211 mal gelesen.
6 Kommentare
direkt zum Formular »
Seiten:
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?
24. März 2009: 16:09
Ja, das ist ein Objekt Literal. Genauer beschrieben wird das in diesem
selfhtml Artikel.
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
20. November 2016: 20:33
Affengeil!
siehe URL…
Herrzlichen Dank und schreib mal wieder ;)
–Rolf
16. Juni 2021: 12:20
Kongeniale Funktion! Sehr nützlich auch noch 16 Jahre nach Veröffentlichtung!
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); };