Das Problem sieht ziemlich albern, aber ich bin nicht in der Lage, herauszufinden, was ich falsch mache.Javascript - Nested Array Sortierung funktioniert nicht wie erwartet
Ich versuche, ein verschachteltes Array basierend auf einem bestimmten Index zu sortieren. Wenn ich das Array weiter sortiere, wird das Array jedes Mal geändert, was nicht der Fall sein sollte. Außerdem wird dieses Problem nicht reproduziert, wenn die Array-Länge etwas klein ist.
// Code goes here
var app = angular.module("myApp", []);
app.controller("someController", ['$scope', function($scope) {
$scope.AppTitle = "Array sort Issue";
$scope.testArray = [
["2016-04-10T18:30:00.000Z", "b20", 104],
["2016-04-10T18:30:00.000Z", "b20", 81],
["2016-04-10T18:30:00.000Z", "b20", 29],
["2016-04-10T18:30:00.000Z", "b20", 1],
["2016-04-10T18:30:00.000Z", "n0c", 155],
["2016-04-10T18:30:00.000Z", "n0c", 21],
["2016-04-10T18:30:00.000Z", "n0c", 12],
["2016-04-10T18:30:00.000Z", "n0c", 10],
["2016-04-10T18:30:00.000Z", "n0c", 8],
["2016-04-10T18:30:00.000Z", "n0c", 8],
["2016-04-10T18:30:00.000Z", "ecty", 101],
["2016-04-10T18:30:00.000Z", "ecty", 58],
["2016-04-10T18:30:00.000Z", "adgi", 127],
["2016-04-10T18:30:00.000Z", "adgi", 24],
["2016-04-10T18:30:00.000Z", "ath", 77],
["2016-04-10T18:30:00.000Z", "ath", 60],
["2016-04-10T18:30:00.000Z", "hry", 124],
["2016-04-10T18:30:00.000Z", "hry", 8],
["2016-04-10T18:30:00.000Z", "tfan", 132],
["2016-04-10T18:30:00.000Z", "sr", 96],
["2016-04-10T18:30:00.000Z", "hwdg", 59],
["2016-04-10T18:30:00.000Z", "hwdg", 15],
["2016-04-10T18:30:00.000Z", "hwdg", 14],
["2016-04-10T18:30:00.000Z", "hwdg", 6],
["2016-04-10T18:30:00.000Z", "alub", 88],
["2016-04-10T18:30:00.000Z", "ax0", 43],
["2016-04-10T18:30:00.000Z", "ax0", 40],
["2016-04-10T18:30:00.000Z", "ax0", 4],
["2016-04-10T18:30:00.000Z", "ax0", 1],
["2016-04-10T18:30:00.000Z", "voin", 67],
["2016-04-10T18:30:00.000Z", "voin", 19],
["2016-04-10T18:30:00.000Z", "voin", 2],
["2016-04-10T18:30:00.000Z", "p", 87],
["2016-04-10T18:30:00.000Z", "ttm", 65],
["2016-04-10T18:30:00.000Z", "ttm", 18],
["2016-04-10T18:30:00.000Z", "bre", 78],
["2016-04-10T18:30:00.000Z", "bre", 1],
["2016-04-10T18:30:00.000Z", "dew", 41],
["2016-04-10T18:30:00.000Z", "dew", 33],
["2016-04-10T18:30:00.000Z", "cgu", 19],
["2016-04-10T18:30:00.000Z", "cgu", 15],
["2016-04-10T18:30:00.000Z", "cgu", 13],
["2016-04-10T18:30:00.000Z", "cgu", 6],
["2016-04-10T18:30:00.000Z", "cgu", 4],
["2016-04-10T18:30:00.000Z", "cgu", 4],
["2016-04-10T18:30:00.000Z", "cgu", 3],
["2016-04-10T18:30:00.000Z", "cgu", 3],
["2016-04-10T18:30:00.000Z", "cgu", 1],
["2016-04-10T18:30:00.000Z", "cgu", 1],
["2016-04-10T18:30:00.000Z", "cgu", 1],
["2016-04-10T18:30:00.000Z", "an", 69],
["2016-04-10T18:30:00.000Z", "hwo", 69],
["2016-04-10T18:30:00.000Z", "camel", 68],
["2016-04-10T18:30:00.000Z", "mysore", 67],
["2016-04-10T18:30:00.000Z", "power", 60],
["2016-04-10T18:30:00.000Z", "power", 2],
["2016-04-10T18:30:00.000Z", "www", 49],
["2016-04-10T18:30:00.000Z", "www", 10],
["2016-04-10T18:30:00.000Z", "hgyp", 35],
["2016-04-10T18:30:00.000Z", "hgyp", null],
["2016-04-10T18:30:00.000Z", "hgyp", 4],
["2016-04-10T18:30:00.000Z", "igne", 43],
["2016-04-10T18:30:00.000Z", "igne", 13],
["2016-04-10T18:30:00.000Z", "weight", 54],
["2016-04-10T18:30:00.000Z", "hbk", 50]
]
$scope.sortTable = function() {
$scope.testArray.sort(function(a, b) {
if (a[1] > b[1])
return 1;
if (b[1] > a[1])
return -1;
return 0;
});
}
}]);
Added der Kodex auf Plunker @https://plnkr.co/edit/B99a28LBGLojcDtuBM2i
Scroll nach unten und klicken Sie auf die Schaltfläche sortiermich. Sie können die Änderung in den Tabellenzeilen bei jedem Klick auf die Schaltfläche sehen.
Vielen Dank im Voraus. Sie würden einen Anschlag zu meinem Elend setzen;)
Sie möchten eine sortierte Kopie? –
Wenn das Array bereits sortiert ist, warum würde das erneute Sortieren zu einem anderen Ergebnis führen? – Sanjay
Was ist falsch seine Sortierung von A nach Z aufsteigend? – SuperComupter