Sebastian: Doubletten aus Array entfernen

Beitrag lesen

Hy,

Ich habe hier eine Funktion gebastelt, die aus einem Array Doubletten herausfiltern soll, die durch das mehrmalige Ausführen der Funktion test() an einem bestimmten Element entstehen.

/////////////////////////////////////

var elemente = new Array();

function test(element)
{

elemente.push(element.id);

elemente.sort();

for ( i = 0; i < elemente.length; i++)
{

while (elemente[i] == elemente[i-1])
elemente.splice(i,1);

}

}

/////////////////////////////////////

Ein solches Array würde ohne sort() z.B. so aussehen:

"Element1","Element1","Element2","Element1"

Nach sort() sähe das entsprechende Array dann so aus:

"Element1","Element1","Element1","Element2"

Mein Ansatz: in der for-Schleife wird jetzt jedes Element des Arrays mit dem vorangegangenen Element verglichen und geprüft, ob diese Elemente identisch sind. Ist dies der Fall, wird eines entfernt - und zwar solange, bis jedes Element nur noch einmal im Array vertreten ist.

Schön und gut ! Das funktioniert auch ! Aber mein Instinkt sagt mir, dass man das viel einfacher und eleganter lösen kann. Es sieht verdammt "gekrückt" aus, oder ? Wer kann mir eine "schönere" Lösung zeigen bzw. meiner Lösung seiner Segen geben ?

Kann man diese Aufgabe auch mit Regulären Ausdrücken erledigen ?

Mfg Sebastian