整数のみが含まれることが分かっている配列から最高値と最低値を取得しようとするのは、思ったよりも難しいようです。
var numArray = [140000, 104, 99];
numArray = numArray.sort();
console.log(numArray)
と表示されることを期待していました99, 104, 140000
。 代わりに と表示されました104, 140000, 99
。 つまり、ソートでは値が文字列として処理されているようです。
ソート関数を使用して実際に整数値でソートする方法はありますか?
ベストアンサー1
デフォルトでは、sort メソッドは要素をアルファベット順に並べ替えます。数値順に並べ替えるには、数値の並べ替えを処理する新しいメソッド (以下に示す sortNumber) を追加します。
var numArray = [140000, 104, 99];
numArray.sort(function(a, b) {
return a - b;
});
console.log(numArray);
ドキュメンテーション:
モジラArray.prototype.sort()
Infinity または NaN を含まない配列には、この比較関数を推奨します。(Infinity - Infinity
は 0 ではなく NaN であるため)。
キーでオブジェクトをソートする例も示します。