Mit diesem Array:JS multidimentionnal Array sortieren Liste
var arr = [];
arr[0] = [1, 'Peter', 3];
arr[1] = [1, 'Mary', 2];
arr[2] = [0, 'David', 5];
arr[3] = [0, 'John', 4];
arr[4] = [0, 'Billy', 1];
Dies funktioniert:
arr.sort(function (a,b) {
console.log(a[2]);
if (a[2] > b[2]) return 1;
if (a[2] < b[2]) return -1;
return 0;
});
Aber mit einem Array wie folgt:
var arr = [];
arr[0] = [1, 1, 0, 0, 0];
arr[1] = ['Peter', 'Mary', 'David', 'John', 'Billy'];
arr[2] = [3, 2, 5, 4, 1];
A [2] bekommt 0 -David.
Ich gab alles zurück, ich kann es wirklich nicht herausfinden. Bitte, weißt du, wie ich das zweite Array nach arr [2] Liste sortieren könnte?
Sie könnten besser Mapping sein, es zu das erste und dann nach der Sortierung in das zweite zurückkonvertieren. – epascarello
Eine Sache, die Sie beachten sollten, ist, dass Sie im ersten Fall das Array "arr" sortieren und in der zweiten einen Mash der Subarrays sortieren, so dass "arr.sort" niemals den Trick macht, weil Sie es nicht versuchen um 'arr' zu sortieren. Wie @epascarello sagte, werden Sie besser einander zuordnen. –
Also, wenn ich das Problem richtig verstehe, versuchen Sie Array1 und Array2 basierend auf den Werten von Array3 zu sortieren. Dies ist nicht trivial implementiert, und ich nehme an, Sie versuchen, etwas zu tun, das viel einfacher sein kann, wenn Sie es nicht so machen wollten. Ich kann vorschlagen, dass Sie Ihre Matrix transponieren, sortieren Sie es mit der ersten Implementierung, dann transponieren Sie es zurück. Oder Sie können eine ganz spezielle Art implementieren, aber mit der .sort() ist es nicht wirklich möglich. – Alex