["1", "2", "3"]. map(parseInt)
时间: 2023-12-11 12:33:22 浏览: 123
js代码-005 ['1','2','3'].map(parseInt)一道题的扩展,实现map,call
["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()方法时,每个元素都会被传入这个新函数中,而这个新函数会将第一个参数解析为十进制数。
阅读全文