文字列の配列を数値の配列にする

JavaScript で文字列の配列を数値の配列にしたい - Qiita
...

文字列の配列 [‘1’, ‘2’, ‘3’] の各要素を Array.map() で変換して、数値の配列 [1, 2, 3] にする。

正しい方法

// 小数や指数を含んでもよい場合
['1', '2', '3'].map(Number);// [1, 2, 3]

// 小数表現や指数表現も解釈できる(してしまう)
['1.1', '2.2e2', '3e300'].map(Number); // [1.1, 220, 3e+300]

// int限定の場合
['1', '2', '3'].map( str => parseInt(str, 10) );

間違った方法

['1', '2', '3'].map(parseInt);

上記のように記述してしまうと、実際の parseInt() の呼び出しは下記のようになる。

parseInt("1", 0); // 第2引数はデフォルトの10になる※
parseInt("2", 1); // 1が基数として渡されるためNaNが返る
parseInt("3", 2); // 2が基数として渡され、"3"は2進数として解析できないためNaNが返る

※parseInt() のドキュメントより、第2引数が0のときの基数は10とは限らない。

parseInt()を使用する場合、ファンクションを別途定義する。

function returnInt(element) {
  return parseInt(element, 10); // 第二引数を明示する
}
['1', '2', '3'].map(returnInt); // [1, 2, 3]

// アロー関数の場合
['1', '2', '3'].map( str => parseInt(str, 10) ); // [1, 2, 3]
inserted by FC2 system