arr.map(parseInt)的问题
这个问题还挺坑的,我在写算法时,还真这么写过,当时不知道有问题,可能有些题AC不了就是这个导致的
首先我们来看看parseInt
这个方法
- string(参数1):必需。要被解析的字符串。
- raidx(参数2):可选,默认为10。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
从定义中我们可以看出,parseInt
会将string
按照raidx进制
解析,我们来看几个例子
1 |
|
需要注意的是,如果radix
不在2-36范围内,输出结果为NaN
,但也有特例:
1 |
|
了解了以上内容,我们有请今天的主角
1 |
|
我们知道,当map自定义回调函数时,写法如下
1 |
|
所以前面的代码等价于
1 |
|
返回的结果为[1, NaN, NaN]
至于原因,显而易见,知道你平时这样用为什么这么多NaN
了吧
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!