JavaScript - 配列のソート 文字列を並び替える

JavaScript で配列内の文字列を昇順・降順にソート(並び替え)する方法を紹介します。

sort() メソッドを使うことで、文字列としてアルファベット順にソートできます。

あわせて、アルファベットの大文字・小文字を区別せずにソートする方法も紹介します。

文字列を昇順(アルファベット順)にする

文字列をアルファベット順にする場合は、sort() メソッドをそのまま使い、 引数には何も指定しません。


var arr = ["e", "c", "b", "a", "d"];

arr.sort();

console.log(arr); // Array [ "a", "b", "c", "d", "e" ]

降順(アルファベット順の逆順)にする

文字列をアルファベット順の逆順にするには、reverse() メソッドを使うとできます。

sort() した配列を reverse() で逆順にするだけです。


var arr = ["e", "c", "b", "a", "d"];

arr.sort().reverse();

console.log(arr); // Array [ "e", "d", "c", "b", "a" ]

大文字・小文字を区別せずにアルファベット順でソートする

アルファベットの大文字・小文字が混在している場合、sort() を実行すると、 次のように大文字のアルファベット順、小文字のアルファベット順、 という並びになります。


var arr = ["E", "c", "B", "a", "D"];

arr.sort();

console.log(arr); // Array [ "B", "D", "E", "a", "c" ]

大文字・小文字を区別せずにアルファベット順にソートする場合は、 次にように記述します。


var arr = ["E", "c", "B", "a", "D"];

arr.sort(function (f, s){
	var a = f.toLowerCase();  // 小文字に変換
	var b = s.toLowerCase();
	if (a < b) return -1;
	if (a > b) return 1;
	
});

console.log(arr); // Array [ "a", "B", "c", "D", "E" ]

比較する前に、toLowerCase() メソッドで、 小文字に変換します。

その後で比較します。

まとめ

文字列をアルファベット順(昇順)にするには sort() メソッドの引数は不要。

reverse() を使うとアルファベット順の逆順にできる。

大文字・小文字を区別する場合、toLowerCase() メソッドを使う。