js map的总结

目标:

    ["1", "2", "3"] 转换成 [1, 2, 3]

["1", "2", "3"].map(parseInt);// [1, NaN, NaN]

问题:

    map 实际调用的是一个函数

function(value, index, array){};

    所以上面变成了

["1", "2", "3"].map(function(value, index, array){
    return parseInt(value, index, array);
});

parseInt("1", 0);//1
parseInt("2", 1);//NaN
parseInt("3", 2);//NaN

    所以出现了上面的结果

修正:

["1", "2", "3"].map(function(x){return parseInt(x)});

附:

    parseInt 用法:

    parseInt(string, radix)

    radix (可选

    表示要解析的数字的基数。该值介于 2 ~ 36 之间。 

    如果省略该参数或其值为 0,则数字将以 10 为基础来解析。

    如果它以 “0x” 或 “0X” 开头,将以 16 为基数。

    如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。




你可能感兴趣的:(js map的总结)