原因在于
['1', '2', '3'].map(parseInt)
等价于
['1', '2', '3'].map((item, index) => {
return parseInt(item, index)
})
而对于 parseInt函数,第一个参数是要转换的值,第二个参数是基数,即parseInt(string[, radix])
对于上数例子来讲
(1,0)=>基数是0,即十进制,转换结果为1
(2,1)=>基数是1,nav
(3,2)=>基数是2,3超过2,无效,nav
练习
['10','10','10','10','10'].map(parseInt);
// [10, NaN, 2, 3, 4]
网友评论