js数组的map方法以及parseInt方法
無意看到一個方法:
["1", "2", "3"].map(parseInt);
返回值為:[1, NaN, NaN]。
好奇查了下map方法的用法如下:map?方法會給原數(shù)組中的每個元素(必須有值)都調(diào)用一次?callback?函數(shù)。callback?每次執(zhí)行后的返回值組合起來形成一個新數(shù)組。callback函數(shù)只會在有值的索引上被調(diào)用,那些從來沒被賦過值或者使用delete刪除的索引則不會被調(diào)用。
也就是數(shù)組都調(diào)用了parseInt方法,但是為什么返回的值卻不同呢。因為callback?函數(shù)會被自動傳入三個參數(shù):數(shù)組元素,元素索引,原數(shù)組本身。而parseInt方法是可以接收兩個參數(shù)的,第一個為被轉(zhuǎn)化的值,第二個為被轉(zhuǎn)化值的進(jìn)制。map自動傳入的第二個參數(shù)被當(dāng)做進(jìn)制了,也就是數(shù)組的index被當(dāng)做進(jìn)制數(shù)了。當(dāng)進(jìn)制數(shù)為0時,默認(rèn)為10進(jìn)制,故結(jié)論數(shù)組第一個值為1,。當(dāng)parseInt的進(jìn)制參數(shù)小于2或者大于36,就返回NaN,因此第二個值為NaN。第三個值為NaN的原因是相當(dāng)于執(zhí)行了parseInt("3","2"),而2進(jìn)制下數(shù)字3是不存在的,也返回了NaN。
參考鏈接:
https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Global_Objects/Array/map
?
http://www.w3school.com.cn/js/jsref_parseInt.asp
轉(zhuǎn)載于:https://www.cnblogs.com/newyear/p/3542785.html
總結(jié)
以上是生活随笔為你收集整理的js数组的map方法以及parseInt方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: openSUSE:系统安装(Window
- 下一篇: 模糊查询实例 只要相关匹配即可