JavaScript で数値形式の文字列を Array.sort() するとバグる話
- 2021 7/1
- カテゴリー : 未分類
- JavaScript
- コメントを書く
JavaScript で数値形式の文字列を Array.sort() するとバグる話をご紹介します。
背景 数値形式の文字列を sort して数値の昇順にソートを期待してはダメ
['99','100','101'].sort()
// [ '100', '101', '99' ]
解決方法A Number型に変換して比較する
['99','100','101'].sort((a, b) => parseFloat(a) - parseFloat(b));
// [ '99', '100', '101' ]
解決方法B そもそもString型のまま比較しない
[99,100,101].sort((a, b) => a - b);
// [ 99, 100, 101 ]
以上、JavaScript で数値形式の文字列を Array.sort() したい、現場からお送りしました。