美文网首页js css html
parseInt和map将字符串数组转成整型数组时遇到的坑

parseInt和map将字符串数组转成整型数组时遇到的坑

作者: 扶得一人醉如苏沐晨 | 来源:发表于2022-09-22 09:30 被阅读0次

    是不是三脸蒙蔽?不是用该[1,2,3]吗

    经过查阅Array.prototype.map()的文档,深入了解了map()函数的作用机制,由于map()接收的回调函数可以有3个参数:callback(currentValue, index, array),通常我们仅需要第一个参数,而忽略了传入的后面两个参数。不幸的是,parseInt(string, radix)没有忽略第二个参数,导致实际执行的函数分别是:

    parseInt('0', 0); // 0, 按十进制转换

    parseInt('1', 1); // NaN, 没有一进制

    parseInt('2', 2); // NaN, 按二进制转换不允许出现2

     可以固定parseInt的第二个参数

    可以改为arr.map(Number);,因为Number(value)函数仅接收一个参数;

    或者

     还可以使用“+”号转


    注意以上用法,数组中的字符串不得高于17位,不然会变成IEEE格式,以上所有方法都不行

    根本原因js的number类型有个最大值(安全值)即2的53次方为9007199254740992


    相关文章

      网友评论

        本文标题:parseInt和map将字符串数组转成整型数组时遇到的坑

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