的JavaScript Array.map(parseInt函数)会导致NaN的错误
问题描述:
当试图在JavaScript ['10','10','10'].map(parseInt)
的JavaScript Array.map(parseInt函数)会导致NaN的错误
这样的事情,你会得到这个结果:[ 10, NaN, 2 ]
为什么会出现这种情况?
答
parseInt
经常与一个参数使用,但需要。
第一个是表达式,第二个是基数。
到回调函数,Array.prototype.map 传递参数到parseInt
:所述元件,所述索引,阵列。
的第三参数是忽略由parseInt
,但不是第二个,因此可能的混淆。
+0
另请参阅http://stackoverflow.com/a/35180286/1726544以获得更详细的答案。 – 2016-03-07 10:45:57
http://stackoverflow.com/questions/262427/javascript-arraymap-and-parseint – 2014-11-05 03:35:34
'parseInt'的有效第二个参数是从2-36(即基数2到基数36)的基数参数。数组的map方法传递索引作为第二个参数,导致index = 1的错误,但显然不是index = 0,因为它被解释为null或undefined,其中'主要'默认为基于10的字符串前缀“0”或“0x”)。 – jongo45 2014-11-05 03:46:02