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