Ich muss mehrere Strings nach einer darin enthaltenen Zahl sortieren. Ich zerlege und speichere sie dazu in einem mehrdimensionalen Array, um das anschließend zu sortieren.
Also quasi so:
function numSort(a,b) { return a-b; }
var test = new Array();
test[0] = new Array(); test[0] = ('asdf', 'acht', 'acht', '8');
^? Woher hast Du diese Syntax?
Das Element in test[0] ist jetzt 8. Alle anderen Werte sind weg.
.. und alles ist schön nach der letzten Zahl sortiert.
Ja, aber die Werte 'asdf', 'acht', 'acht' sind weg.
Ist denn wohl:
test[0] = ('foo', 'bar');
^test[0] ist jetzt "bar"
was anderes als:
someVar = 'foo#bar';
test[0] = someVar.split('#');
^test[0] ist jetzt _wirklich_ ein Array.
Der numSort-Funktion werden durch Array.sort(numSort) die beiden aktuell zu sortierenden Elemente übergeben. In Deinem Fall sollen das zwei Arrays sein. Du musst dann in numSort die Elemente dieser Arrays voneinander abziehen, welche die numerischen Werte enthalten.
Bsp.:
<script type="text/javascript">
<!--
function numSort(a,b) { return a[3]-b[3]; }
var test = new Array();
test[0] = new Array('asdf', 'acht', 'acht', '8');
test[1] = new Array('wqerwr', 'sieben', 'sieben', '7');
test[2] = new Array('fsdgf', 'zwei', 'zwei', '0');
for(i=0;i<3;i++) {
alert(test[i]);
}
test.sort(numSort);
for(j=0;j<3;j++) {
alert(test[j]);
}
//-->
</script>
viele Grüße
Axel