1. ホーム
  2. javascript

[解決済み] 整数の配列を正しくソートする方法

2022-03-15 21:14:08

質問

整数だけを含むとわかっている配列から最高値と最低値を取得することは、思ったより難しいようです。

var numArray = [140000, 104, 99];
numArray = numArray.sort();
console.log(numArray)

このように表示されると思います 99, 104, 140000 . 代わりに表示されるのは 104, 140000, 99 . つまり、ソートが値を文字列として扱っているようです。

ソート関数に実際に整数値でソートさせる方法はありますか?

どのように解決するのですか?

デフォルトでは、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 はNaNであって0ではない)。

また、キーでオブジェクトをソートする例もあります。