當初我第一眼看到這個題目時,天然而然的想到了不就是這樣的嗎數組
[parseInt('1'), parseInt('2'), parseInt('3')] // ==> [1,2,3]
複製代碼
咱們打印出來,結果卻不是這樣 bash
map() 方法按照原始數組元素順序依次處理元素。函數
array.map(function (currentValue, index, arr){}, thisValue )
複製代碼
parseInt(string, radix)
複製代碼
parseInt函數接收兩個參數,string:要被解析的字符串,radix:要解析的數字的基數。該值介於 2 ~ 36 之間。
複製代碼
當參數 radix 的值爲 0,或沒有設置該參數時,parseInt() 會根據 string 來判斷數字的基數。this
當忽略參數 radix , JavaScript 默認數字的基數以下:spa
若是 string 以 "0x" 開頭,parseInt() 會把 string 的其他部分解析爲十六進制的整數。code
若是 string 以 0 開頭,那麼 ECMAScript v3 容許 parseInt() 的一個實現把其後的字符解析爲八進制或十六進制的數字。orm
若是 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析爲十進制的整數。cdn
好的,閱讀完這連個API的文檔,下面結合這個題目,對於每一個迭代map, parseInt()傳遞兩個參數: 字符串和基數。 對象
[parseInt('1', 0), parseInt('2', 1), parseInt('3', 2)] ==> [1, NaN, NaN]
複製代碼
下面拓展一下,分析一下['10', 1, 2, 3, 123, 123, 234, 345, 456, 567, 678].map(parseInt)結果是什麼? blog
打印結果 ![]()
歡迎交流和指正 ![]()