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

本文解释了在JavaScript中,map函数与parseInt函数结合时,如何因默认参数导致数组转换错误。通过提供明确的基数或使用箭头函数,可以避免得到[1,NaN,NaN]的意外结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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]。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值