我有一个看起来像数组的字符串:"[918,919]"
。我想将它转换为数组,有没有比拆分并检查它是否是数字更简单的方法?谢谢
问问题
4514 次
3 回答
21
使用JSON.parse
.
var myArray = JSON.parse("[918,919]");
于 2013-03-24T06:43:09.583 回答
4
您可以去掉开头和结尾的括号,然后使用:
str.split(",")
这将返回一个由逗号字符分割的数组。
编辑
var temp = new Array();
temp = "[918,919]".slice( 1, -1).split(",");
for (a in temp ) {
temp[a] = parseInt(temp[a]);
}
于 2013-03-24T06:40:11.163 回答
0
如果你使用JSON.parse
的字符串必须有 " 而不是 ' 否则代码会失败。
例如:
let my_safe_string = "['foo','bar',123]";
let myArray = JSON.parse(my_safe_string)
代码将失败
Uncaught SyntaxError: Unexpected token ' in JSON at position 1
相反,如果你使用 " 一切都会工作
let my_safe_string = "["foo","bar",123]";
let myArray = JSON.parse(my_safe_string);
所以你有两种可能将字符串数组转换为数组:
- 将 ' 替换为 "
my_safe_string.replace("'",'"');
并在 do 之后JSON.parse
- 如果您非常确定您的字符串只包含字符串数组,您可以使用 eval:
例子:
let myArray = eval(my_safe_string );
于 2019-09-07T07:54:21.817 回答