Hallo,
irgendwie bekomm ich es nicht hin.
ich habe ein mehrdim. Assoz. Array und möchte dies sortieren.
Die einfache Methode array.sort() funzt irgendwie nicht.
Der Methode Array.sort() kann man eine Funktion als parameter übergeben, welche dann für spezielle Sortierungsaufgaben zuständig ist. Das ist hier http://selfhtml.teamone.de/javascript/objekte/array.htm#sort relativ ausführlich beschrieben.
Folgendes Beispiel erschlägt Deine Aufgabenstellung und sortiert sogar, bei gleichen Texten nach den Values.
function sortText(a,b) {
alert(a["text"]+a["value"] + "<->" + b["text"]+b["value"]);
var index = 0;
if (a["text"] == b["text"]) index = a["value"] - b["value"];
else if (a["text"] > b["text"]) index = 1;
else if (a["text"] < b["text"]) index = -1;
return index;
}
var a = new Array();
a[0] = new Array();
a[0]["text"] = "Cäsar"
a[0]["value"] = 3
a[1] = new Array();
a[1]["text"] = "Anton"
a[1]["value"] = 7
a[2] = new Array();
a[2]["text"] = "Michaela"
a[2]["value"] = 3
a[3] = new Array();
a[3]["text"] = "Michaela"
a[3]["value"] = 2
a[4] = new Array();
a[4]["text"] = "Michaela"
a[4]["value"] = 1
a[5] = new Array();
a[5]["text"] = "Bertram"
a[5]["value"] = 1
for (var i = 0; i<a.length; i++) {
document.write(a[i]["text"] + ": " + a[i]["value"] + "<br>");
}
document.write("<hr>");
a.sort(sortText);
for (var i = 0; i<a.length; i++) {
document.write(a[i]["text"] + ": " + a[i]["value"] + "<br>");
}
viele Grüße
Axel