You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何JavaScript中此简写失效?map传入Number.parseInt结果异常问题

为什么直接用Number.parseInt作为map回调会得到异常结果?

问题的核心在于**map方法传递给回调的参数,和Number.parseInt接收的参数不匹配**:

  • map方法会给回调函数传递三个参数:当前遍历的元素、元素的索引值、原数组。
  • Number.parseInt接收两个参数:要解析的字符串、解析时使用的基数(radix,范围是2-36,可选)。

当你直接把Number.parseInt传给map时,map会把前两个参数(元素、索引)当作parseInt的两个参数传入,具体到你的例子:

  1. 第一个元素'1',索引0 → 执行parseInt('1', 0):基数0会被浏览器默认当作10处理,解析结果为1。
  2. 第二个元素'2',索引1 → 执行parseInt('2', 1):基数1是无效值(基数必须≥2),无法解析,返回NaN。
  3. 第三个元素'0',索引2 → 执行parseInt('0', 2):把'0'按二进制解析,结果为0。

而第一种箭头函数写法(num) => Number.parseInt(num),只把当前元素传给parseInt,第二个参数(基数)留空,此时parseInt会默认使用10作为基数,所以所有元素都能正常解析成十进制整数。

内容的提问来源于stack exchange,提问作者Black Wind

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 17:35:22