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
    如有错误或者缺漏,欢迎指点。

  • 相关阅读:
    【Thinkphp教程】URL路由功能解析
    MYSQL 错误#145解决方法
    【Thinkphp教程】空模块
    【Thinkphp教程】 如何进行模块分组
    mySQL中删除unique key的语法
    使用php让浏览器刷新
    Spring+Jpa整合的过程中遇到的一个问题。。。纠结了我半天。。。
    关于mule studio的应用
    解决eclipse和myeclipse不能编译项目的问题
    ajax fileupload上传组件的使用感悟
  • 原文地址:https://www.cnblogs.com/onesea/p/13186364.html
Copyright © 2011-2022 走看看