如何将类数组字符串转换为数组

5

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


我想没有更简单的方法,除了拆分和检查。 - Abubakkar
3个回答

23

使用 JSON.parse

var myArray = JSON.parse("[918,919]");

4
您可以去掉开头和结尾的括号,然后使用:
str.split(",")

该函数将返回一个由逗号分隔的数组。 编辑
var temp = new Array();
temp = "[918,919]".slice( 1, -1).split(",");
for (a in temp ) {
temp[a] = parseInt(temp[a]);
}

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("'",'"');,然后执行JSON.parse
  • 如果你非常确定你的字符串只包含字符串数组,可以使用eval:

例如:

let myArray = eval(my_safe_string );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接