执行 ['1', '2', '3'].map(parseInt)
会得到 [1, NaN, NaN]
,这个结果可能和人们预期的不一样。
这是因为 map
方法会传入三个参数:当前遍历到的元素、当前遍历到的索引、原数组本身。而 parseInt
函数则接受两个参数:需要被解析的值、用于解析的进制数。在执行 ['1', '2', '3'].map(parseInt)
时,实际传入 parseInt
的参数如下:
'1'
、0
(表示解析为十进制):解析后得到数字1
。'2'
、1
(表示解析为一进制):解析后得到NaN
。'3'
、2
(表示解析为二进制):解析后得到NaN
。
所以结果为 [1, NaN, NaN]
。