Murphy: Doppelte/Gleiche Werte aus Array heraus filtern

Beitrag lesen

Für eigene Zwecke habe ich mir eine Funktion unique geschrieben, die das gleiche macht wie Murphy es beschreibt - aber direkt als Funktion jedes Arrays angesprochen werden kann.

Die Funktion, die Du gepostet hast, produziert zwar das gleiche Resultat wie meine, ist aber wesentlich ineffizienter, da sie statt Hashlookups lineare Scans verwendet [1].

Ob man die Funktion lieber extern oder lieber am Prototypen von Arrays verankert haben möchte ist wohl Geschmackssache. Tauscht man in meiner Funktion 'ain' durch 'this' aus und weist sie Array.prototype.unique zu, so kann man sie auch als Methode verwenden.

[1] In manchen schlecht programmierten JavaScript-Engines, wie zum Beispiel bei alten IE-Versionen, stimmt das nicht, da hier anscheinend auch Objekteigenschaften in linearen Listen gespeichert sind. In diesem Fall ist meine Lösung aber zumindest genauso schnell wie Deine und trotzdem kürzer ;-)