. [“1“, “2“,“3“].map(parseInt) 答案是多少

在JavaScript中,["1", "2", "3"].map(parseInt) 这个问题经常会引起混淆,因为它涉及到map函数和parseInt函数的参数传递方式。

map函数会对数组中的每个元素调用parseInt函数,并且会传递三个参数给parseInt:当前元素值、当前元素的索引(从0开始)和数组本身。

parseInt函数通常接受两个参数:要转换的字符串和基数(即解析该字符串时使用的进制)。但在这个情况下,由于map传递了三个参数,parseInt会错误地将第二个参数(字符串的索引)作为基数来使用。

因此,调用会变成这样:

parseInt("1", 0) 会返回 1,因为当基数为0时,如果字符串以数字开头,parseInt会假设它是十进制。

parseInt("2", 1) 会返回 NaN,因为基数1不是一个有效的进制。

parseInt("3", 2) 也会返回 NaN,因为基数2(二进制)中不包含数字3。

所以,["1", "2", "3"].map(parseInt) 的结果通常是 [1, NaN, NaN]。

 

为了避免这种情况,你应该在调用map时提供一个显式指定基数的函数,比如:

 

javascript

复制

["1", "2", "3"].map(Number);

或者使用箭头函数来确保只传递一个参数给parseInt:

javascript

复制

["1", "2", "3"].map(str => parseInt(str, 10));

这样,你就会得到期望的结果 [1, 2, 3]。

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值