【问题标题】:How to convert a string representation to an array integers?如何将字符串表示形式转换为数组整数?
【发布时间】:2021-01-28 08:53:21
【问题描述】:

如何将表示整数数组的单个字符串元素转换为 Javascript 中的整数数组?

我有一个这样的字符串

var str = "["163600", "163601", "166881"]";

我的输出应该是

[163600, 163601, 166881]

我正在尝试的是

var myArr = JSON.parse(str)

但结果我得到了一个字符串数组。

["163600", "163601", "166881"]

如何获得整数数组?

我正在尝试像这样进一步解析

parseInt(myArr) 但这仅适用于0th 索引。有没有办法获取整个数组?

【问题讨论】:

标签: javascript arrays string parsing numbers


【解决方案1】:

简单的方法是使用.map() 创建一个新数组,同时使用Number 将每个字符串解析为数字。

var str = ["163600", "163601", "166881"];
var result = str.map(Number);
console.log(result);

/*Using `JSON.parse` first if your data is not an string array.*/
console.log(JSON.parse("[\"163600\", \"163601\", \"166881\"]").map(Number));

更详细的解释

map() 方法创建一个新数组,其中填充了 在调用数组中的每个元素上调用提供的函数。

当用作函数时,Number(value) converts a string or other value to the Number type。如果值无法转换,则返回 南。

【讨论】:

    【解决方案2】:

    尝试使用map

    var string = "[\"163600\", \"163601\", \"166881\"]";
    var result = JSON.parse(string).map(function(number){ return parseInt(number, 10) || number; });
    
    console.log(result);

    【讨论】:

    【解决方案3】:
    const result = strings.map(el => parseInt(el));
    

    Number 函数也可以工作。不要在回调中包含花括号。

    【讨论】:

    【解决方案4】:

    使用+ 运算符转换为数字

    var str = "[\"163600\", \"163601\", \"166881\"]";
    
    const res = JSON.parse(str).map(item => +item);
    
    console.log(res)

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2016-06-15
      • 2021-02-20
      • 2019-04-16
      相关资源
      最近更新 更多