美文网首页
当map遇到parseInt

当map遇到parseInt

作者: luu | 来源:发表于2018-11-14 12:01 被阅读0次
    [1,4,9].map(Math.sqrt)
    // [1, 2, 3]
    
    ['1','2','3'].map(parseInt)
    //预期 [1, 2, 3]
    //结果 [1, NaN, NaN]
    

    回调函数Array.map有3个参数 map (当前正在遍历的元素, 元素索引, 原数组本身)

    parseInt 有两个参数 parseInt(元素,进制数)。parseInt把传过来的索引值当成进制数来使用从而返回了NaN

    parseInt('1', 0); // OK - gives 1
    parseInt('2', 1); // FAIL - 1 isn't a legal radix
    parseInt('3', 2); // FAIL - 3 isn't legal in base 2 
    

    可以写进函数:

    ['1','2','3'].map(function(num) { return parseInt(num, 10); });
    

    或者使用箭头函数:

    ['1','2','3'].map(num => parseInt(num, 10));
    

    相关文章

      网友评论

          本文标题:当map遇到parseInt

          本文链接:https://www.haomeiwen.com/subject/frbdfqtx.html