今まで['1', '2', '3'].map(parseInt)が意図した結果にならない([1, 2, 3]にならない)のは知っていたのだけど、理由がよくわからなかったので調べてみた。 JavaScriptのparseIntとmapを組み合わせる際の注意より: mapに渡した関数には、引数としてvalue, index, selfが渡される。 を見てわかった。parseIntの基数にindexの値が渡されてるのかーと。 parseInt('1', 0); // => 1 parseInt('2', 1); // => NaN parseInt('3', 2); // => NaN ということみたい。 parseFloatの場合は基数とかないので[1, 2, 3]が返ってくる。整数が欲しい場合は向かないけど…… lodashを使っている場合は_.parseIntを使えば基数を省略した場合は1