JavaScript 配列のソートと整数に問題があります。これらの関数を定義しました:
function sortA(a,b){
return a - b;
}
function sortD(a,b){
return b - a;
}
次に、jquery $.each で、いくつかのコンテンツを配列に入れます。
$('.'+sort_column).each(function(index, value) {
var current_num = $.trim($(this).text())
current_num = parseInt(current_num, 10); //convert to integer for numeric sorting.
valuesArr.push(current_num);
console.log(typeof index); //just checking...this shows number in the console
});
var sort_asc = valuesArr.sort(sortA);
var sort_desc = valuesArr.sort(sortD);
console.log(sort_asc);
console.log(sort_desc);
コンソールでは、配列を同じ順序で取得します。
//console
[1214500, 1214499, 1214497, 1214481, 1214432, 1214421, 1214419, 1214418, 1214369, 1214045, 1205691]
[1214500, 1214499, 1214497, 1214481, 1214432, 1214421, 1214419, 1214418, 1214369, 1214045, 1205691]
不思議なことに、最後に文字列を追加すると、並べ替えが機能します
console.log( valuesArr.sort(sortD) + "asdf");
console.log( valuesArr.sort(sortA) + "asdf");
//console
[1214500,1214499,1214497,1214481,1214432,1214421,1214419,1214418,1214369,1214045,1205691asdf]
[1205691,1214045,1214369,1214418,1214419,1214421,1214432,1214481,1214497,1214499,1214500asdf]
なぜ私がそれを試したのかわかりませんが、そうです。この方法を使用するのはこれが初めてなので、かなり基本的なことを見逃している可能性があります。助けてくれてありがとう!