请尝试运行以下JavaScript代码:
console.log(["1", "2", "3", "4", "5"].map(parseInt));
我的运行结果是[1, NaN, NaN, NaN, NaN]。只有数组的第一个元素被成功转换为数字,其余元素全被全都被转换为NaN。
当我把map方法里的参数由“parseInt”替换为“num => parseInt(num)”、“parseFloat”或“Number”,结果就正常了,是[1, 2, 3, 4, 5]。
为啥我的第一种用法会出现错误?
这个问题我3~4年前也看到过,https://www.cnblogs.com/talentzemin/p/11022181.html
1. map和parseInt的签名如下:
array.map(function(currentValue,index,arr), thisValue)