1. 程式人生 > 實用技巧 >39、[“1”, “2”, “3”].map(parseInt) 答案是多少

39、[“1”, “2”, “3”].map(parseInt) 答案是多少

["1", "2", "3"].map(parseInt) 答案是多少?

讓我們先看看最直接最粗暴的方式

 沒錯,答案就是:[1, NaN, NaN],那為什麼答案是[1, NaN, NaN]呢?

1.讓我們先了解一下map函式的定義

 JavaScript Array map() 方法

 定義和用法

  map() 方法返回一個新陣列,陣列中的元素為原始陣列元素呼叫函式處理後的值。

  map() 方法按照原始陣列元素順序依次處理元素。

  注意:map() 不會對空陣列進行檢測。

  注意:map() 不會改變原始陣列。

 


因為 parseInt 需要兩個引數 (val, radix),
map 傳了 3 (element, index, array)

  即原例子相當於

  [parseInt("1",0),parseInt("2",1),parseInt("3",2)]

  分析:

  按十進位制轉換輸出1   1不在2~36之間,輸出NaN   字串"3"裡面沒有合法的二進位制數,輸出NaN   所以最後結果是[1,NaN,NaN]