首页 > 用map把字符串变成整数的坑

用map把字符串变成整数的坑

'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上的mappolyfill
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个参数。
【热门文章】
【热门文章】