'use strict';
var arr = ['1', '2', '3'];
var r;
r = arr.map(parseInt);
alert('[' + r[0] + ', ' + r[1] + ', ' + r[2] + ']');
这结果居然是[1, NaN, NaN];求解!
var arr = ['1','2','3'];
var r = arr.map(function(val){
return parseInt(val);
});
console.log(r);
map提供两个参数 第一个是数据的值第二个 索引 parseInt接受两个参数,一个是值,一个是进制。所以分别执行pareInter(1,0) pareInter(2,1) pareInter(3,2)所以就1,NaN,NaN
你可以看下MDN
上的map
的polyfill
https://developer.mozilla.org...
mappedValue = callback.call(T, kValue, k, O);
调用callback,参数是当前数组元素的值,index,和整个数组。
arr.map(parseInt);
相当于
arr.map(function(){
return parseInt.apply(undefined,arguments);
});
arguments 就是默认kValue, k, O 这3个参数。