osgsm.io
HomeNotesJavaScript で大文字と小文字が混ざった文字列の配列をいい感じにソートする

JavaScript で大文字と小文字が混ざった文字列の配列をいい感じにソートする

Published Feb 28, 2025
Updated Mar 15, 2025

JavaScript で大文字と小文字が混ざった文字列の配列をソートするために、 sort() を使った場合、次のような結果になる。

['apple', 'Banana', 'Apple', 'banana'].sort()
// Array(4) [ "Apple", "Banana", "apple", "banana" ]

デフォルトのソートでは、 UTF-16 code unit の値をもとに並び替えられるため大文字が先に来てしまう。

慣習的には、 [ "apple", "Apple", "banana", "Banana" ] のように、同じ内容の文字列を小文字 → 大文字の順で並び替えたい。

このようなケースでは sort() の比較関数に localeCompare() を使う。これにより言語慣習に基づく順番で並び替えることができる。

['apple', 'Banana', 'Apple', 'banana'].sort((a, b) => a.localeCompare(b));
// Array(4) [ "apple", "Apple", "banana", "Banana" ]

参考