一个例子了解 Array map() 和 parseInt()

版权声明: https://blog.csdn.net/qq_23521659/article/details/88633164

代码:

console.log(["1","2","3"].map(parseInt));

测试结果:

当然,这里换成Number(),或者换个方法用parseInt解析都能得到我们想要的效果:

分析一波:

Array map()

参数一览:

http://www.runoob.com/jsref/jsref-map.html

我们测试一下:

function中第一个参数为当前操作的元素值,第二个为数组角标,第三个是操作的数组对象;

那么["1","2","3"].map(parseInt),实际上parseInt是接收了三个参数的,做的操作应该是:

parseInt("1",0,["1", "2", "3"]);
parseInt("2",1,["1", "2", "3"]);
parseInt("3",2,["1", "2", "3"]);

我们再来看parseInt。

parseInt()

http://www.w3school.com.cn/js/jsref_parseInt.asp

显然问题出在第二个参数上,通俗易懂的说,parseInt第二个参数决定它以几进制去对第一个参数解析。

parseInt("1",0);

第二个参数为0,就是以十进制解析,返回 1 

parseInt("2",1);

第二个参数为1,不在2~36之间,不管第一个参数是几,返回 NaN

parseInt("3",2);

第二个参数为2,以2进制转换3,显然2进制里是不存在3的,返回 NaN 

综上所述,最终结果就是[1,NaN,NaN]。

有其他问题大家可以留言讨论,谢谢~

猜你喜欢

转载自blog.csdn.net/qq_23521659/article/details/88633164