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 协议 ,转载请注明出处!