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() メソッドを使う。