map、parseInt

在牛客刷题的时候,遇到YY前端的一道题,有点意思,写下来分享

[“1", "2", "3"].map(parseInt)的执行结果是?

A ["1","2","3"]

B [1,2,3]

C [0,1,2]

D 其他 

正确答案是D,图下是浏览器运行的答案

map、parseInt_第1张图片

要得出正确答案,先看看map函数和parseInt函数的用法以及特性

map指的是映射,[].map(),基本用法跟forEach方法类似

array.map(callback,[ thisObject]);

callback的参数也类似:

[].map(function(value, index, array) {// ...

});

parseInt函数有两个参数,分别是字符串和多少进制

那么对应题目,就是[“1", "2", "3"].map(parseInt(value,index){});

这里的value就是1,2,3,

而index是0,1,2,

那么就是value对应解析的字符串,index对应进制,0的话就代表是十进制解析,如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

则第一个输出是1,而第二个是因为index小于2,返回Nan,第三个是因为value是3,不符合二进制,也返回的是NaN。


顺带一提,forEach()方法跟map()方法类似,只是前者代表遍历,用法也是一样的

[].forEach(function(value,index,array));

你可能感兴趣的:(map、parseInt)