日常踩坑--parsInt()

本文详细解析了JavaScript中parseInt函数与Array.map方法结合使用时的特殊行为,揭示了当parseInt作为map的回调函数时,如何因参数传递不当导致解析错误,以及提供了解决方案。

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

有如下代码:

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

执行结果是什么?

[1, NaN, NaN]

解析:

/*
	parseInt(value, radix) 需要两个参数, 需要被解析的值, 基数
	radix = 0, 按十进制解析
	radix = 1, 解析为 NaN
	一位的value, radix < value 例如 parseInt('3', 2) 3 无法被解析成二进制, 只能被解析成 NaN
	
	上述代码的执行过程: 
	因为 map 会传入 三个参数 (ele, index, arr) parseInt 需要两个就会取前两个(ele, index)
	parseInt('1', 0)	// 按 10 进制解析
	parseInt('2', 1)	// 无法解析 NaN
	parseInt('3', 2)	// 无法解析 NaN
	
*/


// map 传入三个参数?  使用如下代码查看

["1", "2", "3"].map(function () {
    console.log(arguments);
})

如果我非要这么做而且还能得到正确的答案, 怎么办?

["1", "2", "3"].map(function () {
    return parseInt(arguments[0], 10);
})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值