5

我有一个看起来像数组的字符串:"[918,919]"。我想将它转换为数组,有没有比拆分并检查它是否是数字更简单的方法?谢谢

4

3 回答 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 回答