map和parseInt

map和parseInt

一、map
1、map的参数

Array.map(callback, thisIndex):

callback(currentValue, index, arr):

  • currentValue:必要参数,表示当前元素的值
  • index:当前元素在数组中的索引,可选
  • arr:当前元素所属的数组,可选

thisIndex: 可选参数,回调函数的this或者对象的this

2、map的特点:

  • 不会改变原数组,返回的是经过回调函数处理的新数组
  • 在回调函数中必须返回currentValue
  • 不会检验数组是否为空

3、map的使用

        let newArr = [1,2,3,4,5,6,7,8,9,10];
        console.log(newArr.map(data => {
            return data*2;
        }));

得到如下结果:
结果

二、parseInt

1、参数

parseInt(string, radix):

string: 表示要转换的字符串

radix: 表示转换的基数(进制数, 2 ~ 36 )

当我们只传string时,js会对它做如下基础处理:

  • 如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
  • 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt()
    的一个实现把其后的字符解析为八进制或十六进制的数字。
  • 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

2、parseInt的特点:

  • 只有字符串的第一个数字会被返回,当第一个字符不能转换为数字,将会直接返回NaN
  • 字符串开头和结尾可以有空格
  • 当字符串第一个是比后面基数的值大时,会直接返回NaN(即该数字不是该进制表示的数)

3、parseInt的使用:

        console.log(parseInt('5'));
        console.log(parseInt('r5'));
        console.log(parseInt('4rr'));
        console.log(parseInt('3', 2));

结果:
结果

三、、面试题

以下输出什么?为什么?

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

这里将parseInt当做回调函数,但是在调用parseInt时会自动获取两个参数:数组中每个值以及数组的索引。这得益于map函数,因为map函数的回调函数默认有三个参数,第一个是数组每个元素,第二个是索引,第三个是元素所属的数组;由于parseInt仅能接收前两个参数,所以我们运行代码时会得到以下结果:

  • parseInt(‘1’, 0):在js中,当redix为0但是string不是0时,将会把基数当做10来处理,因此得到 1
  • parseInt(‘2’, 1):由于redix=1,不在基数范围2-36之间并且2也不是可以表示一进制的数,所以得到结果 NaN
  • parseInt(‘3’, 2):redix = 1是在2-36范围之间的,但是由于3不是能够表示二进制的数,所以得到结果 NaN

因此,最后得到的结果是 [1, NaN, NaN]

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这个语句的意思是将一个数组中的每个元素都应用 parseInt 方法进行转换,并将转换后的结果存储到一个新的数组中返回。其中,parseInt 方法将字符串解析成整数值。如果数组中的元素无法解析成整数,则会返回NaN。例如: ``` const arr = ['10', '20', '30']; const newArr = arr.map(parseInt); console.log(newArr); // [10, NaN, NaN] ``` 在这个例子中,parseInt 方法在遍历第一个元素时,会将 '10' 解析成整数 10。但是在遍历第二个元素时,parseInt 方法会将它解析成十进制数 2,因为它以 '2' 开头。同理,对于第三个元素,parseInt 方法会将它解析成十进制数 3。因此,最终的结果数组为 [10, NaN, NaN]。 ### 回答2: mapparseInt)是一种数组方法,在JavaScript中常用于对数组进行遍历和处理。它通过传入一个回调函数来对数组的每个元素进行操作,并返回一个新的数组。 parseInt是将字符串转换为整数的方法,它可以接收两个参数,第一个参数是要转换的字符串,第二个参数是基数(表示要转换成的进制类型,默认为10进制)。当我们将parseInt作为回调函数传入map方法时,map将会对数组的每个元素执行parseInt转换操作,并将结果返回为一个新的数组。 需要注意的是,parseInt在转换过程中会忽略字符串中的非数字部分。例如,如果数组元素是"2.5",parseInt将只会返回整数部分2。此外,当数组元素不是有效的数字字符串时,parseInt会返回NaN。因此,在使用mapparseInt)时,需要特别注意数据的有效性和预期的转换结果。 下面是一个使用mapparseInt)的例子: ```javascript const array = ["1", "2", "3"]; const result = array.map(parseInt); console.log(result); // [1, NaN, NaN] ``` 在上面的例子中,数组元素分别为"1","2","3"。map方法对每个元素依次执行parseInt转换,所以结果数组分别为1,NaN,NaN。这是因为parseInt将"2"和"3"都转换为10进制时得到的结果都是NaN。 总之,mapparseInt)是一种对数组进行遍历和转换的方法,可以方便地将字符串数组转换为整数数组。但在使用时需要注意数据的有效性和预期的转换结果。 ### 回答3: map(parseInt)是一个数组方法,可以用于对一个数组的每个元素执行parseInt函数。 parseInt函数用于将给定的字符串解析为整数。如果字符串开头是有效的数字字符,则解析直到无效结果为止。结果将返回一个整数,如果无法解析,则返回NaN。 当对一个数组执行map(parseInt)时,会依次对数组的每个元素执行parseInt函数,并返回一个新的数组。每个元素首先被转换为字符串,然后被解析为整数。 需要注意的是,parseInt函数有一个可选的参数用于指定字符串的进制基数。如果不传递进制参数,默认为十进制。在map(parseInt)中,由于没有传递进制参数,parseInt会默认将字符串解析为十进制数。 然而,map(parseInt)在处理非数字字符串时会产生一些奇怪的结果。这是因为parseInt函数会从字符串的开头开始解析,直到遇到无效字符为止。因此,如果数组中的元素是非数字字符串,则parseInt会返回NaN。 这是一个示例: ```javascript const arr = ['10', '20', '30']; const result = arr.map(parseInt); console.log(result); // [10, NaN, NaN] ``` 在上面的示例中,数组`arr`包含三个字符串元素:'10','20','30'。使用map(parseInt)对数组进行处理后,得到的结果是一个新的数组`result`,其中第一个元素'10'被正确解析为整数10,但是第二个和第三个元素'20'和'30'被解析为NaN。这是因为parseInt函数无法将非数字字符解析为有效整数。 综上所述,map(parseInt)对数组的每个元素执行parseInt函数,并返回一个包含解析结果的新数组。但需要注意,在处理非数字字符串时可能会得到NaN。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值