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