['1','2','3'].map(parseint)的结果
时间: 2023-12-21 18:27:45 浏览: 23
结果会是 [1, NaN, NaN]。这是因为在 JavaScript 中,parseInt 函数的第二个参数表示要解析的数字的进制,如果不指定,默认为 10 进制。而在这个例子中,'1', '2', '3' 都是 10 进制的数字字符串,但是在 map 函数中没有给 parseInt 指定进制,导致 '2' 和 '3' 被解析成了非法数字,返回 NaN。
相关问题
["1", "2", "3"]. map(parseInt)
["1", "2", "3"].map(parseInt)的结果是[1, NaN, NaN]。这是因为map()方法会将数组中的每个元素依次传入parseInt()函数中,而parseInt()函数接收两个参数,第一个参数是要被解析的值,第二个参数是进制数。在这个例子中,第一个元素"1"被传入parseInt()函数中,由于没有指定进制数,因此默认使用十进制,所以返回1;第二个元素"2"被传入parseInt()函数中,由于指定的进制数是1,而1不是一个有效的进制数,所以返回NaN;同理,第三个元素"3"也被传入parseInt()函数中,由于指定的进制数是2,而"3"不是一个有效的二进制数,所以返回NaN。
下面是两种解决这个问题的方法:
1.使用箭头函数
```javascript
["1", "2", "3"].map((item) => parseInt(item))
```
2.使用bind()方法
```javascript
["1", "2", "3"].map(parseInt.bind(null, 10))
```
其中,bind()方法会创建一个新的函数,这个新函数与parseInt()函数相同,只不过第一个参数被绑定为null,第二个参数被绑定为10,这样在调用map()方法时,每个元素都会被传入这个新函数中,而这个新函数会将第一个参数解析为十进制数。
['1','2','3'].map(parseInt)返回结果为
[1, NaN, NaN]
这是因为`parseInt`函数在执行时接收两个参数,第一个参数是要解析的字符串,第二个参数是用于指定解析的进制。而在`map`函数中,`parseInt`函数会自动传入三个参数:当前遍历的元素、当前遍历的索引和原始数组。所以实际执行的代码如下:
- `'1'`传入`parseInt`后,使用默认进制解析,返回整数1。
- `'2'`传入`parseInt`后,使用默认进制解析,返回NaN(因为2无法被解析为整数)。
- `'3'`传入`parseInt`后,使用默认进制解析,返回NaN(因为3无法被解析为整数)。
因此,最终的结果是[1, NaN, NaN]。