An dem Sortieralgorithmus der Funktion sort() kannst du nichts ändern. Du kannst entweder einen eigenen Algorithmus in eine eigene Funktion implementieren, oder du macht einen Workaround, indem du beispielsweise _ durch Z ersetzt oder ähnliches.
Grüße Marco
Hy Marco,
aber was soll mir dieses "Z" bringen? Bzw. das Ersetzen?
Wenn dann müsste ich also nen Art Container schreiben wo z.B. folgendes deklariert ist:
A = 1
B = 2
C = 3
...
AA = 101
AB = 102
AC = 103
...
BB = 202
BC = 203
...
Aber da hätte ich ja ne riesige Liste. Und das wollte ich eigentlich umgehen.
Ich hab mir da schon was gebastelt, dass wenn die Datei mit dem Doppelbuchstaben, von der Länge her länger ist als die mit dem Einzelbuchstaben, dann soll die "längere" Datei ans Ende gestellt werden:
for( i = 0; i < a.length; i++ )
{
if( !b[i] ) return 1;
if( a[i].length > b[i].length ) return 1;
if( a[i].length < b[i].length ) return -1;
if( a[i] > b[i] ) return 1;
if( a[i] < b[i] ) return -1;
};
return 0;
Und dann ein Vergleich der sortierten Daten, um die letzte Datei zu nehmen:
current000 = arr1[i].n[0];
current00x = arr1[i].n[1].split("_")[1];
currentX = arr1[i].n[1].split("_")[0];
if( last000 != current000 )
{
out1 = out1.concat( temp1 );
temp1 = [];
};
if( i > 0 && lastX != currentX ) { temp1 = []; }
temp1.push( arr1[ i ] );
last000 = current000;
lastX = currentX;
last00x = current00x;
arr1[0].n[0] => D258_70100_000 (...)
.n[1] => A_20m (...)
.n[1].split("_")[0] => A (...)
.n[1].split("_")[1] => 20m (...)
Dieses .n ist quasi alles das, was nach dem 14. Zeichen kommt. Sozusagen die Eigenschaft.
Und nach diesem Verfahren erhalte ich die "höchste" Datei mit dem höchsten Buchstaben, egal ob Einzel oder Doppel.
Und nun wollte ich nur die Buchstaben vergleichen. Welche von den Ganzen die Höhere ist. Dachte das System erkennt das "von alleine".
Ansonsten müsste ich so wie oben beschrieben, erst die Länge vergleichen, und wenn da die eine Länger ist, dann ist sie dann auch "höhere".
LG Romero