为什么使用Array#map时,parseInt会产生NaN?

13 浏览
0 Comments

为什么使用Array#map时,parseInt会产生NaN?

Mozilla开发者网络

[1,4,9].map(Math.sqrt)

将得到:

[1,2,3]

那么为什么这样:

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

得到这样的结果呢:

[1, NaN, NaN]

我在Firefox 3.0.1和Chrome 0.3上进行了测试,但需要说明的是,我知道这不是跨浏览器的功能(不支持IE)。

我发现以下代码可以实现预期的效果。然而,这仍然无法解释parseInt的错误行为。

['1','2','3'].map(function(i){return +i;}) // 返回 [1,2,3]

0