我有一个字符串想要转换成数组
"[(6, 11), (12, 17), (18, 20)]"
.split()
不能工作(或者至少我不知道如何分隔单词),而JSON.parse总是在Uncaught SyntaxError: Unexpected token
上表现不佳
我是这样转换的:JSON.parse(THAT_GIVEN_LIST)
我做错了什么吗?如何将此字符串转换为一个漂亮的[(6, 11), (12, 17), (18, 20)]
列表
发布于 2018-08-28 03:58:44
对于JSON,您使用的括号在语法上不正确。你假设他们的意思是定义一个元组。但是,元组不是JSON原语。如果你想要像这样的嵌套结构,你最好的选择是使用嵌套数组:
const a = "[[6, 11], [12, 17], [18, 20]]";
const aa = JSON.parse(a);
console.log(aa);
aa.forEach(i => console.log(`first: ${i[0]}, second: ${i[1]}`));
发布于 2018-08-28 04:00:31
如果你的输入格式是python list,你可以用下一种方法来实现:
'use strict';
const tuple = "[(6, 11), (12, 17), (18, 20)]";
const tupleToArray = JSON.parse(tuple
.replace(/\(/g, '[')
.replace(/\)/g, ']')
);
console.log(tupleToArray);
发布于 2018-08-28 04:04:17
使用JSON.parse()
获取二维数组。用"["
替换了"("
,用"]"
替换了")"
。
var arr = JSON.parse("[(6, 11), (12, 17), (18, 20)]".split("(").join("[").split(")").join("]"));
console.log(arr);
https://stackoverflow.com/questions/52046119
复制相似问题