at backyard

Color my life with the chaos of trouble.

JavaScript のsplit() メソッドで配列に分割する際に、数値型で分割する方法

今日何気なく発見したことを書く。どうでも良いことだけど、そういえばそうかーというようなプチ発見。

const numberList = '1,2,3'

// 普通にsplitすると文字列型の配列で返る
numberList.split(',')
// => ["1", "2", "3"]

// 下記のようにやると、数値型の配列で返る
numberList.split(',').map(Number)
// =>  [1, 2, 3]

これは実際にはこういう形となっている

numberList.split(',').map(n => {
  return Number(n)
})

Number それ自体が関数だから、Numberを適用して返しているという感じ。
なので、下記のように関数を作成して適用する事ができる。

// 引数で渡した文字を数値に変換して +1 して返す関数
const inc = n => {
  return Number(n) + 1
}

numberList.split(',').map(inc)
[ 2, 3, 4 ]

考えてみればなんてことないことだし、たぶん日常的によく使っているような気もするけど、 numberList.split(',').map(Number) という書き方もできるんだよなーとふと思ったのでメモに残しておく