map知识点

[‘1’, ‘2’, ‘3’].map(parseInt)的结果是什么;

结果:[‘1’, NaN, NaN]
为什么不是[‘1’, ‘2’, ‘3’]呢?

原因如下:

1、map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

map() 方法按照原始数组元素顺序依次处理元素。
map(parseInt)其实是:
map(function(item, index){
return parseInt(item, index);
})
复制代码即依次运行的是:
parseInt(‘1’, 0);
parseInt(‘2’, 1);
parseInt(‘3’, 2);
出处:https://juejin.im/post/6844904017600970766

2、parseInt的第二个参数只支持2-36的整数。

看MDN原文:
parseInt(string [, radix])方法对radix参数的定义:
An integer between 2 and 36 that represents the radix (the base in mathematical numeral systems) of the string. Be careful—this does not default to 10!
因此列举以下代码执行结果:

parseInt('22',37) //NaN
parseInt('22',36) //2666

猜你喜欢

转载自blog.csdn.net/taozi550185271/article/details/109112080