Ich habe ein Array von Elementen wie in Javascript folgt:Javascript natürliche Art Array/Objekt und halten die Verbindung zum Index
var users = Array();
users[562] = 'testuser3';
users[16] = 'testuser6';
users[834] = 'testuser1';
users[823] = 'testuser4';
users[23] = 'testuser2';
users[917] = 'testuser5';
Ich brauche das Array zu sortieren, die folgende Ausgabe zu erhalten:
users[834] = 'testuser1';
users[23] = 'testuser2';
users[562] = 'testuser3';
users[823] = 'testuser4';
users[917] = 'testuser5';
users[16] = 'testuser6';
Beachten Sie, wie es nach dem Wert des Arrays sortiert ist und dass die Assoziation von Wert zu Index beibehalten wird, nachdem das Array sortiert wurde (das ist kritisch). Ich habe nach einer Lösung gesucht, versucht, es zu schaffen, aber ich habe eine Wand getroffen.
Übrigens ist mir bewusst, dass dies technisch kein Array ist, da dies bedeuten würde, dass die Indizes immer 0 bis n durchlaufen, wobei n + 1 die Zählnummer ist, die n fortsetzt. Wie auch immer Sie es definieren, die Anforderung an das Projekt ist immer noch dieselbe. Auch, wenn es einen Unterschied macht, verwende ich nicht jQuery.
Hey, ich bin froh, dass du eine Antwort gefunden hast, die funktioniert, aber ich ermutige dich, einen kurzen Blick auf [meine Antwort] zu werfen (http://stackoverflow.com/questions/3824392/javascript-natural-sort-array-object) -und-maintain-index-association/3824938 # 3824938) (Ich war ein bisschen zu spät zum Spiel!) oben. String-Vergleich ist in JavaScript integriert, und Sie können feststellen, dass es insgesamt eine sauberere Lösung ist. – s4y
Sie sollten auch in Array-und Objektliterale schauen (ich erwähne sie nur kurz in meiner Antwort). Du könntest das Array 'users' in deinem Beispielcode viel schneller erstellen: 'var users = [['72', 'testuser4'], ['91', 'testuser2'], ...]' – s4y
Danke für die Köpfe, es sieht sauberer aus. Unterstützt es jedoch die natürliche Fallsortierung? Das hat meinen Code ein wenig schlampiger gemacht. – user396404