Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中将字符串数组转换为浮点_Javascript_Arrays_Charts_Chart.js - Fatal编程技术网

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

如何在Javascript中将字符串数组转换为浮点,javascript,arrays,charts,chart.js,Javascript,Arrays,Charts,Chart.js,我有这个数组,它的格式是字符串: ['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项,因为分隔符是逗号 你知道如何在不替换点的情况下转换这个数组吗?你可以只映射数字 var数组=['6.35','2.72','11.79','1

我有这个数组,它的格式是字符串

['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项,因为分隔符是逗号


你知道如何在不替换点的情况下转换这个数组吗?

你可以只映射数字

var数组=['6.35','2.72','11.79','183.25'],
数字=数组.map(数字);

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

const str=“['6.35','2.72','11.79','183.25']”,
array=str.match(/\d+(?:\。\d+)/g).map(数字)

console.log(array)
使用
Number
功能映射阵列,它将处理转换:

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

console.log(num)解析要浮动的值:


console.log(['6.35','2.72','11.79','183.25'].map(i=>parseFloat(i))
\d
只匹配数字,它是
[0-9]
的缩写。例如,在
6.35
\d+
中,分别匹配
6
,然后分别匹配
35
,点被忽略。在结果中得到的是包含这些匹配项的数组

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

array.map(Number) 

我也有同样的问题这是我找到的解决办法 我有

我想要

x = [11,1.1,100,100,2,3333,99]
这是我的解决办法

x.toString().replace(/, +/g, ",").split(",").map(Number)

逗号是图表Js中使用的分隔符。所以我必须保留它们,而不替换点。下面的答案与答案相同,你只需要更好地搜索答案,而不是问重复的问题。@IslamElshobokshy链接将数组转换为整数。我的问题是浮点数,不替换点。不同的是,浮点数是浮点数,点与浮点数无关,当你使用数字将字符串转换为数字时,你会得到浮点数,如果图表JS不接受浮点数,这是另一个问题,你应该重新表述你的问题,这样我们可以更好地提供帮助you@jo_va图表Js接受浮动。它使用逗号作为分隔符,本机点表示小数。如果仅使用此方法,则Chart Js(使用数组的位置)不会呈现图表。此外,由于某种原因,这个方法本身失败了,所以我甚至无法打印结果。没有必要在JavaScript中将数字内容转换为数字文字,因为这就是为什么我们喜欢JavaScript——它是活的!如果我们服务得好,我会为我们服务。@Juliosuto,问题是,为什么不接受这个数组?你试过一个只有数字的数组吗?@NinaScholz我已经用整数成功了。这个问题与float有关,如上所述,如果我只使用这个方法,那么Chart Js(使用数组的地方)不会呈现图表。另外,由于某种原因,这个方法本身失败了,所以我甚至无法打印结果。(在“window.column_b.map(i=>Number(i))”中,“window.column_b.map”未定义)。PS:“window.column_b”,因为它是在函数外部声明的全局变量。谢谢你,Islam花了这么多时间试图解决它。我已经测试了Adiga提出的解决方案,它成功了,所以我将其标记为已解决。@Juliosoto我的荣幸!减号呢?@sonictl在正则表达式的开头添加一个可选的减号:
/-?\d+(?:\。\d+)/
,非常感谢!我建议将答案修改为类似regex的注释,以允许它适用于所有实数。因为这个问题中的浮点数应该包含所有实数。
x = [11,1.1,100,100,2,3333,99]
x.toString().replace(/, +/g, ",").split(",").map(Number)