zoukankan      html  css  js  c++  java
  • JavaScript将数组中的字符串转变成整数数字

    JavaScript将数组中的字符串转变成整数数字使用parseInt时的注意

    var arr = ['1', '2', '3']
    console.log(arr.map(parseInt))
    //打印结果: 1,NaN,NaN
    1
    2
    3
    再看另一个例子

    var arr = ['10', '10', '10']
    console.log(arr.map(parseInt))
    //打印结果: 10,NaN,2
    1
    2
    3
    此时发现两个例子打印出不同的结果,产生上面结果的原因是其实map遍历后打印出的顺序是

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

    parseInt(‘10', 0); // 10
    parseInt(‘10', 1); // NaN
    parseInt(‘10', 2); // 2
    1
    2
    3
    4
    5
    6
    7

    再去看一下MDN的官方文档说明
    在这里插入图片描述

    两个例子产生不同结果的具体原因总结为

    1’ radix不能超出范围
    2’ 把’3‘看做二进制,返回十进制数不可实现,因为除了0,1外,其它数字都不是有效二进制数字。


    两个例子产生不同结果的具体原因总结为

    1’ radix不能超出范围
    2’ 把’3‘看做二进制,返回十进制数不可实现,因为除了0,1外,其它数字都不是有效二进制数字。

    现在再来实现将数组中的字符串转变成整数数字,有以下几种方法:

    第一种方法 (改写parseInt的用法, 建议每次遍历时加上radix的数值)

    var arr = ['1', '2', '3']
    console.log(arr.map(i => parseInt(i, 0)));

    第二种方法

    var arr = ['1', '2', '3']
    console.log(arr.map(i => i * 1));
    //或者
    console.log(arr.map(i => i / 1));
    1

    第三种方法

    var arr = ['1', '2', '3']
    console.log(arr.map(i => Math.floor(i)));
    1
    2
    第四种方法

    var arr = ['1', '2', '3']
    console.log(arr.map(Number));
    1
    2
    如有错误或者缺漏,欢迎指点。

  • 相关阅读:
    前端 时间转换为时间戳 时间戳转时间
    RT, 吞吐量,并发用户数,QPS名词解释
    Bluetooth开发资料的收集
    Day20_学成在线项目就业指导
    Day20_docker相关xml
    Day20_Jenkins安装文档
    八段锦口诀
    Day20_GitLab安装文档
    Day20_GitCommand
    Day20_DevOps
  • 原文地址:https://www.cnblogs.com/onesea/p/13186364.html
Copyright © 2011-2022 走看看