为什么使用Array#map时,parseInt会产生NaN?
- 论坛
- 为什么使用Array#map时,parseInt会产生NaN?
13 浏览
为什么使用Array#map时,parseInt会产生NaN?
[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]