最近面試高發題
[1, 2, 3].map(parseInt) 結果和原因?
結果:[1, NaN, NaN]
原因: [1, 2, 3].map(parseInt) 完整形式 => [1, 2, 3].map((val, k) => parseInt(val, k))
看看 parseInt的參數 第二個是進制數(默認爲10),範圍在2-36,當k不在這個範圍,則返回NaN。
我們來練習一下
[1, 2, 3, 3, 2, 1, 6, 7, 8, 9, 10, 11, 22].map(parseInt)
// 結果?
[1, NaN, NaN, NaN, 2, 1, NaN, NaN, NaN, NaN, 10, 12, 26]
// 注意進制的轉換 在數字層面最大9 11進制11 = 1 * 11 + 1 = 12
// 這邊只是簡單的提醒 敲代碼的應該都瞭解