如何将字符串转换为浮动在Javascript中的数组

问题描述 投票:1回答:7

我有这样的阵列,它被格式化为字符串:

['6.35', '2.72', '11.79', '183.25']

问题是,当我把它转换为数字(使用 - 没有双引号)array.match(/\d+/g).map(Number) || 0;

它改变了用于向小数逗号点。然后,我结束了这个新的数组:

6,35,2,72,11,79,183,25

所以,与其有4个项目的数组内,现在我有8个项目,作为我的分隔符是逗号。

我怎么能这样数组转换,无需更换点什么想法?

javascript arrays charts chart.js
7个回答
1
投票

假设你有一个字符串格式的数组,你可以使用下面的正则表达式匹配所有的小数点,然后使用.map(Number)

const str = "['6.35', '2.72', '11.79', '183.25']",
      array = str.match(/\d+(?:\.\d+)?/g).map(Number)

console.log(array)

0
投票

你可以只映射数字。

var array = ['6.35', '2.72', '11.79', '183.25'],
    numbers = array.map(Number);

console.log(numbers);

0
投票

var num = ['6.35', '2.72', '11.79', '183.25'].map(num => Number(num));

console.log(num);

Number() mdn


0
投票
var arr = ["6,35,2,72,11,79,183,25"]
var result=arr.map(Number);
result[]
typeof(result[])

0
投票

解析值浮动:

console.log(['6.35', '2.72', '11.79', '183.25'].map(i => parseFloat(i)));

如果由于某种原因.map()不工作只用一个循环:

var array = ['6.35', '2.72', '11.79', '183.25']
var x = 0;
var len = array.length
while(x < len){ 
    array[x] = parseFloat(array[x]); 
    x++
}

console.log(array)

0
投票

\d只匹配数字,它的简称[0-9]。例如,在6.35 \d+匹配6然后35分别和点被忽略。你在结果得到的是含有这些比赛阵列。

在其他的答案表明,使用匹配的是你的情况多余的,你可以去:

array.map(Number) 

0
投票

有图有Number功能阵列上,它会处理的转换:

console.log(['6.35', '2.72', '11.79', '183.25'].map(Number));

如果你想在你的号码逗号,那么你就必须坚持一个字符串表示。

看到这个SO answer关于与ChartJS类似的问题。

© www.soinside.com 2019 - 2024. All rights reserved.