在牛客刷题的时候,遇到YY前端的一道题,有点意思,写下来分享
[“1", "2", "3"].map(parseInt)的执行结果是?
A ["1","2","3"]
B [1,2,3]
C [0,1,2]
D 其他
正确答案是D,图下是浏览器运行的答案
要得出正确答案,先看看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));