JavaScriptで整数の配列を正しくソートする方法を解説
JavaScriptで整数の配列をソートするには、sort()メソッドを使用します。ただし、注意点があります。sort()はデフォルトでは要素を文字列として比較するため、数値の配列をそのままソートすると意図しない結果になることがあります。
例えば、[1, 10, 2]を引数なしでsort()すると、結果は[1, 10, 2]ではなく文字列順に並び替えられてしまいます。整数を正しく昇順にソートするには、比較関数(コンパレータ)を渡す必要があります。
基本的な使い方
比較関数として (first, second) => first - second を渡すことで、数値として正しく昇順ソートが行われます。降順にしたい場合は second - first を返すようにします。
サンプルコード
var arrayOfIntegers = [67, 45, 98, 52];
arrayOfIntegers.sort(function (first, second) {
return first - second;
});
console.log(arrayOfIntegers);プログラムの実行方法
上記のプログラムを実行するには、Node.jsを使って次のコマンドを実行します。
node fileName.js
ここでは、ファイル名を demo310.js として保存しています。
実行結果
上記のコマンドを実行すると、以下のような出力が得られます。
PS C:\Users\Amit\javascript-code> node demo310.js [ 45, 52, 67, 98 ]
補足:アロー関数を使った書き方
ES6以降では、アロー関数を使ってより簡潔に書くこともできます。
const arrayOfIntegers = [67, 45, 98, 52]; arrayOfIntegers.sort((a, b) => a - b); console.log(arrayOfIntegers); // [ 45, 52, 67, 98 ]
このように、比較関数を正しく指定することで、JavaScriptでも整数の配列を意図したとおりにソートできます。元の配列を変更せずにソートしたい場合は、toSorted()メソッド(ES2023以降)を利用するのも良い選択肢です。
-
JavaScriptのArray.prototype.sort()メソッドの使い方をサンプルコードで解説
Array.prototype.sort()は、JavaScriptで配列の要素を並べ替えるための組み込みメソッドです。アルファベット順・数値順といった並び方に加えて、昇順・降順も自由に指定でき、配列操作の中でも特に使用頻度の高いメソッドの一つです。 ただし重要なポイントとして、sort()メソッドはデフォルトではすべての要素を文字列に変換してから比較します。そのため、数値の配列を意図したとおりに並べ替えたい場合は、比較関数を引数として渡す必要があります。 以下は、Array.prototype.sort()メソッドの基本的な使い方を示すサンプルコードです。 サンプルコード <!DOC
-
JavaScriptでオブジェクト配列をindexプロパティの値に基づいて並べ替える方法
はじめにJavaScriptでは、オブジェクトが格納された配列を特定のプロパティの値に基づいて並べ替えたい場面がよくあります。本記事では、各オブジェクトが持つ index プロパティの値を基準に配列を昇順にソートし、その結果を文字列の配列へ変換する方法を解説します。対象となるデータ例として、次のようなオブジェクトの配列を想定します。const arr = [ { name: d, index: 3 }, { name: c, index: 2 }, { name: a,