题目:
['2', '3', '4'].map(parseInt);
请说出上面代码的执行结果
错误回答:
[2, 3, 4]
真正答案:
[2, NaN, NaN]
解析:
因为 map 的算子是有两个参数的,第一个参数是被迭代数组的元素,第二个参数是该元素的下标。所以 ['2', '3', '4'].map(parseInt) 实际上相当于执行了 [parseInt('2', 0), parseInt('3', 1), parseInt('4', 2)],结果就变成了 [2, NaN, NaN] 了。
所以,正确的写法应该是:['2', '3', '4'].map(num => parseInt(num, 10));