1
0

js 数値にsort()使ってもうまくいかない理由

Last updated at Posted at 2024-03-13

jsのソートがうまくいかない

kintoneカスタマイズのために、javascriptを練習しているとこんな現象が起きた

const array = [2, 99, 80, 2, 19, 22];
array.sort();
console.log(array); // 出力 Array(6)[ 19,2,2,22,80,99 ]

うまくいけば

// Array(6)[ 2,2,19,22,80,99 ]

と出力されるはずだ。

sortメソッドはデフォルトだと文字列として要素を比較する

sort()メソッドは本来、デフォルトだと文字列を比較するメソッド。つまりアルフォベット順にする。数値として比較したいときは、比較関数を用いる

比較関数とは?

sort()メソッドに指定するコールバック関数。MDMではcompareFn(a, b)と表現されている。比較関数を指定しないと、文字列として比較される

const array = [2, 99, 80, 2, 19, 22]
const array = [2, 99, 80, 2, 19, 22]
array.sort( compareFn = (a, b) =>  a - b )
console.log(array); // Array(6)[ 2,2,19,22,80,99 ]

array.sort( compareFn = (a, b) => a - b )は省略してarray.sort((a, b) => a - b)とすることもできます。

1
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0