最近看张雪峰老师的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