["1", "2", "3"]. map(parseInt)
时间: 2023-12-11 19:33:22 浏览: 37
["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)
该代码将不起作用,因为parseint应该是parseInt的拼写错误,应该使用以下代码:["1", "2", "3"].map(parseInt),它将把字符串数组中的每个字符串都解析成数字。但由于parseInt函数接受两个参数,第一个是要解析的值,第二个是用于指定进制的基数(默认为十进制),因此可能会对数组中的某些值产生意外的结果。例如,["11", "11", "11"].map(parseInt)将返回[11, NaN, 3],因为函数将第二个元素解析为三进制数字而不是十一进制数字。
['1','2','3'].map(parseint)
['1','2','3'].map(parseInt) 的结果是 [1, NaN, NaN]。
这是因为 map() 方法会将数组中的每个元素都传入 parseInt() 函数中进行转换,而 parseInt() 函数的第二个参数可以指定进制,如果不指定则默认为 10 进制。所以在这个例子中,第一个元素 '1' 被转换成了 1,但第二个元素 '2' 在解析成 10 进制时会被认为是二进制的数字,因此返回 NaN。同理,第三个元素 '3' 在解析成 10 进制时也会返回 NaN。