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

Jul*_* S. 4 javascript arrays charts chart.js

我有这个数组,它被格式化为字符串

['6.35', '2.72', '11.79', '183.25']
Run Code Online (Sandbox Code Playgroud)

问题是当我将其转换为数字时(使用 - 不带双引号) array.match(/\d+/g).map(Number) || 0;

它将用于小数的点更改为逗号。然后我最终得到这个新数组:

6,35,2,72,11,79,183,25
Run Code Online (Sandbox Code Playgroud)

因此,数组中不再有 4 个项目,现在我有 8 个项目,因为我的分隔符是逗号。

关于如何在不替换点的情况下转换此数组的任何想法?

adi*_*iga 6

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

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

console.log(array)
Run Code Online (Sandbox Code Playgroud)


F0G*_*F0G 5

\d只匹配数字,它是[0-9]. 例如,在6.35 \d+匹配中6,然后35分别和点被忽略。您得到的结果是包含这些匹配项的数组。

正如其他答案中所建议的,在您的情况下使用 match 是多余的,您可以使用:

array.map(Number) 
Run Code Online (Sandbox Code Playgroud)