最近看張雪峰老師的JS教程的時候,做了一道題。
小明希望利用map()把字符串變成整數,他寫的代碼很簡潔:
'use strict';
var arr = ['1', '2', '3'];
var r;
r = arr.map(function(x){return parseInt(x);});
console.log(r);
Run
1,2,3
結果竟然是1, NaN, NaN,小明百思不得其解,請幫他找到原因並修正代碼。
這個錯誤是因為沒有考慮到,map中的parseInt 函數可以傳入多個參數的原因。
導致數組中,第一個"1"被處理成1后,第二個"2"傳入parseInt的時候,傳入了2個參數(2, 1).而parseInt第二個參數是大於2小於或等於36范圍的,這個1顯然不在此范圍,所以返回了NaN
