前端面试题_06_parseInt与map遍历组合题

[“1”,“2”,“3”].map(parseInt)

what&why?
早在2013年,有人在微博上发布以下代码段:

    ['10','10','10','10','10'].map(parseInt)
    //[10,NaN,2,3,4]

parseInt(取整)
定义和用法
parseInt()函数解析一个字符串参数,并返回一个指定基数的整数(数学系统的基础)。
语法
parseInt(string,radix)
string:必需。要被解析的字符串;
radix:可选。表示要解析的数字的基数。该值介于2~36之间。如果省略该参数或其值为0,则数字将以10为基础来解析。如果它以“0x”或“0X开头”,将以16为基数。如果该参数小于2或者大于36,则parseInt()将返回NaN。
返回值
返回解析后的数字。

const round = parseInt(100)
    console.log(round)

在这里插入图片描述

    const round = parseInt(100,10)
    console.log(round)

在这里插入图片描述

    const round = parseInt(100,2)
    console.log(round)

在这里插入图片描述

map(遍历)
map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

let new_array = arr.map(function callback(currentValue,index,array){}[,thisArg])

其中callback生成新数组元素的函数,使用三个参数:
currentValue callback的第一个参数,数组中正在处理的当前元素。
index callback的第二个参数,数组中正在处理的当前元素的索引。
array callback的第三个参数,map方法被调用的数组。
thisArg 可选的,执行callback函数时 使用的this值。

<script>
    const arr = [1,2,3];
    const arr2 = arr.map(function(num){ return num+1})
    console.log(arr2)
</script>

在这里插入图片描述

回到真实的事例上

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

对于每个迭代map,parseInt()传递两个参数:字符串和基数。所以实际执行的代码是:

<script>
    const arr = [1,2,3];
    const arr2 = arr.map(function(item,index){ return parseInt(item,index)})
    console.log(arr2)
</script>

在这里插入图片描述

如何在现实世界中做到这一点
如果您实际上想要循环访问字符串数组,带怎么办?map()然后把它换成数字?使用编号!

<script>
    const arr = [1,2,3];
    const arr2 = arr.map(function(Number){ return parseInt(Number)})
    console.log(arr2)
</script>

在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页