前言
提示:对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