Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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 将带有int和float的字符串解析为数组_Javascript_Arrays_Json - Fatal编程技术网

Javascript 将带有int和float的字符串解析为数组

Javascript 将带有int和float的字符串解析为数组,javascript,arrays,json,Javascript,Arrays,Json,我有一个转换为数组的字符串: var data = "[[1, 2, 3,], [3, 2, 1]]"; var array = JSON.parse(data.replace(/,\s*]/g, ']')); 我需要能够处理浮点,即此表单的输入: var data = "[[2.,23.,1.5904], [4.,23,1.6208]]"; 使用浏览器控制台,当我尝试执行以下操作时: var ar=JSON.parsedata.replace/,\s*]/g,']' 我得到这个错误: Sy

我有一个转换为数组的字符串:

var data = "[[1, 2, 3,], [3, 2, 1]]";
var array = JSON.parse(data.replace(/,\s*]/g, ']'));
我需要能够处理浮点,即此表单的输入:

var data = "[[2.,23.,1.5904], [4.,23,1.6208]]";
使用浏览器控制台,当我尝试执行以下操作时:

var ar=JSON.parsedata.replace/,\s*]/g,']'

我得到这个错误:

SyntaxError: JSON.parse: unterminated fractional number at line 1 column 5 of the JSON data
我猜这和JSON.parse的regexp有关,但我还不擅长regexp,所以我不知道

我一直在玩弄这个:这实际上有助于理解,但我仍然无法解决我的问题

这个问题是我上一个问题的延伸,这个问题已经解决了:


当时我没有想到的是,我还需要能够处理浮点运算

你可以用

data.replace(/\.,/g, ".0,)
这将从2.中的每一个替换为2.0

或者你可以

data.replace(/\.,/g, ",")

删除逗号前的点。

您可以使用

data.replace(/\.,/g, ".0,)
这将从2.中的每一个替换为2.0

或者你可以

data.replace(/\.,/g, ",")

删除逗号前的点。

问题是JSON需要在点后加一个数字

正确的JSON如下所示:

var data = "[[2.0,23.0,1.5904], [4.0,23,1.6208]]";
因此,如果可以控制输出,则必须输出全浮点数,或者解析字符串以将零附加到所有点,如下所示:

data.replace(/\.,/g, ".0,").replace(/\.]/g, ".0]");

请注意,我们还需要查找点,而不仅仅是逗号。

问题是JSON需要在点后加一个数字

正确的JSON如下所示:

var data = "[[2.0,23.0,1.5904], [4.0,23,1.6208]]";
因此,如果可以控制输出,则必须输出全浮点数,或者解析字符串以将零附加到所有点,如下所示:

data.replace(/\.,/g, ".0,").replace(/\.]/g, ".0]");
请注意,我们还需要查找点,而不仅仅是逗号