[ `1` , `2` , `3` ].map(parseInt)

目录

map() 方法

parseInt(string, radix) 

进制

总结:


这个题用到了数组的map方法、parseInt方法以及二进制的知识

  • map() 方法

map() 方法创建一个新数组,会遍历原数组,返回一个处理之后的新数组

const array1 = [1, 4, 9, 16];

// Pass a function to map
const map1 = array1.map(x => x * 2);

console.log(map1);
// expected output: Array [2, 8, 18, 32]
//可以接受两个参数
//item是每一项
//index是每一项的索引

const map1 = array1.map((item,index)=>{

         return  item*2 + index*1
})

  • parseInt(stringradix) 

parseInt(stringradix) 解析一个字符串并返回指定基数的十进制整数,radix 是 2-36 之间的整数,表示被解析字符串的基数。

接收两个参数

第一个参数

要被解析的值。如果参数不是一个字符串,则将其转换为字符串 (使用 ToString抽象操作)。字符串开头的空白符将会被忽略。

第二个参数:

从 2 到 36 的整数,表示进制的基数。例如指定 16 表示被解析值是十六进制数。如果超出这个范围,将返回 NaN。如果没有传或者为0,默认为10进制,

当第一个参数以 ‘ 0x ’ 开头 按照16进制处理

如果为 0 开头 按照8进制处理, ES5之后取消了这个规则

‘A’在16进制里面 为10, ‘F’在16进制中不存在

  • 进制

十进制整数转换为二进制整数:

采用:除2取余,逆序排列

二进制整数转换为十进制整数:

采用:全权相加,从0位开始数,


总结:

有了以上的基础我们可以把代码按顺序详细分解

const arr = ['1','2','3']

const result = arr.map((item,index)=>{
        return parseInt(item, index)
    }
)

result为一个数组

所以map遍历的顺序为

1. parseInt(1,0)

2. parseInt(2,1)

3. parseInt(3,2)

所以结果为  result = 【 1,NaN,NaN 】

猜你喜欢

转载自blog.csdn.net/shmilynn_/article/details/128598064
今日推荐