- .map方法接受一个callback作为回调,同时会为这个回调传入三个参数,分别是value、index、arr,即迭代中的值、索引、数组本身
- parseInt接收两个参数,分别是s、radix,即要解析的字符串、解析为的进制基数
- 因此
['1', '2', '3'].map(parseInt)
,每一次迭代相当于执行 parseInt(‘1’, 0)、parseInt(‘2’, 1)、parseInt(‘3’, 2) - 第一次执行,radix为0,默认为10进制,因此返回1, 而后面两次执行,radix为1、2,而s为’2’、’3‘,s >= radix都无法正确解析,因此返回NaN
- 最终返回结果为 [1, NaN, NaN]
- 据此,可以修改为
['1', '2', '3'].map((s)=>parseInt(s))
,指定传入的参数只有s,则默认为10进制,即可