1

我有一个像 {{1,2},{3,4}}, {{1.1,1.2},{1.0, 1.0}, {1.3,1.3}} 这样的字符串我需要得到一个成对数组的数组 {number , 数字}。

最好的方法是什么?

4

4 回答 4

5

由于输入几乎看起来像数组语法,您可以用方括号替换所有花括号以获得有效数组:

var string = '{{1,2}, {2,3}}';
JSON.parse(string.replace(/}/g, ']').replace(/\{/g, '['));
// >>> [[1,2],[2,3]]

请注意,我曾经JSON.parse解析字符串。
如果您的输入包含多个{..}用逗号分隔的 ,请添加额外的大括号:'[' + .. + ']'。否则,你会得到类似 的东西result = [1,2],[4,5];,它不能提供所需的结果。

于 2012-06-20T12:23:53.007 回答
0

你为什么不把这个 { 替换成这个 [ 和这个 } 替换成这个 ] 然后将它解析为一个 json

于 2012-06-20T12:26:15.113 回答
0

你可以通过多种方式做到这一点。您可以用方括号替换大括号,您可以自己构建一个解析器来查看每个字符并跟踪您是否打开或关闭了一个数组,或者您可以在字符串上运行多个循环,根据其中的模式将其拆分.

例如。第一个循环 - 在 }},{{ 上拆分,因为这只发生在顶层。

第二个循环 - 在 },{ 上拆分每个

于 2012-06-20T12:24:58.237 回答
0
console.log(JSON.parse("["+("{{1,2},{3,4}}, {{1.1,1.2},{1.0, 1.0}, {1.3,1.3}}"
    .replace(/{/g,'[').replace(/}/g,']'))+"]"));
于 2012-06-20T12:25:00.970 回答