這個問題看起來很愚蠢,但我無法找出我做錯了什麼。Javascript - 嵌套數組排序不能按預期工作
我想對基於特定索引的嵌套數組進行排序。如果我繼續對數組進行排序,則數組每次不斷變化,而不應該如此。而且,這個問題在陣列長度有點小時沒有得到重現。
// 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;
});
}
}]);
添加的代碼上plunker @https://plnkr.co/edit/B99a28LBGLojcDtuBM2i
向下滾動,然後單擊sortMe按鈕。您可以在每次點擊按鈕時看到表格行中的更改。
在此先感謝。你會杜絕了我的痛苦;)
你想要排序的副本嗎? –
如果數組已被排序,爲什麼再次排序會給出不同的結果? – Sanjay
排序a到z升序有什麼不對? – SuperComupter