console.log([1, 2, 3].map(parseInt))结果是什么你知道吗???


前言

提示:对map函数有清晰的认识,以及对parseInt使用有清晰的认识:


提示:以下是本篇文章正文内容,下面案例可供参考

一、map用法

map的5种使用场景
其中这里使用的是arr.map(fun())

[1, 2, 3].map((item, index) => {
      console.log(item, index)
})

表示讲数组中的每个元素一一映射到方法中并返回一个新的数组

二、理解parseInst()

注意:该函数解析字符串并返回整数。
(1)该函数接受2个参数 **parseInt(string(必选),radix(可选))**并返回10进制的整数
(2)其中radix的取值范围为2-32,表示的是2-36进制,默认不选中时为10进制
例子:

console.log(parseInt(3.2))//3
console.log(parseInt(32,4))//14(表示将32的4进制转化成10进制)

(3)但是也有特殊情况
例如:

console.log(parseInt(32, 0)) //32 特殊
console.log(parseInt(32, 1)) //NaN
console.log(parseInt(32, 37)) //NaN

三、理解 arr.map(parseInt)

(1)本质上是

let arr = [1, 2, 3].map((item, index) => {
    return parseInt(item, index)
})
console.log(arr)

(2)这是箭头函数,2者的参数又是一样的那么我们是不是就可以将return干掉呀

let arr = [1, 2, 3].map((item, index) => parseInt(item, index))

(3)是不是还可以将参数也干掉呀

let arr = [1, 2, 3].map(parseInt) //[1,NaN,NaN]

四、解读结果

let arr = [1, 2, 3].map(parseInt) //[1,NaN,NaN]

只所以结果会是这个**[1,NaN,NaN]**
我们一个一个分析
(1)当map遍历第一个数组元素时拿到的是 item = 1 ,index = 0
在parseInt(1,0)当中返回的是一个十进制的1因此输出是1注意这里第二个参数就是我们说的不再2-36进制范围的特殊情况
(2)当map遍历第二个元素时拿到的是item = 2 ,index = 1
在parseInt(2,1)当中返回的应该是一个十进制的2但是注意这里第二个参数就是我们说的不再2-36进制范围的1,这里并没有这种一进制的树因此返回的事NaN
(2)当map遍历第三个元素时拿到的是item = 3 ,index = 2
在parseInt(3,2)当中返回的应该是一个十进制的3但是注意这里第一个参数是3,在对应的二进制中是不存在3的因此返回的是NaN

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值