如何将字符串转换为 JavaScript 数组?
看代码:
var string = "0,1";
var array = [string];
alert(array[0]);
在这种情况下,alert
会弹出一个0,1
. 当它是一个数组时,它会弹出一个0
,当alert(array[1]);
被调用时,它应该弹出1
.
有没有机会将这样的字符串转换为 JavaScript 数组?
如何将字符串转换为 JavaScript 数组?
看代码:
var string = "0,1";
var array = [string];
alert(array[0]);
在这种情况下,alert
会弹出一个0,1
. 当它是一个数组时,它会弹出一个0
,当alert(array[1]);
被调用时,它应该弹出1
.
有没有机会将这样的字符串转换为 JavaScript 数组?
对于这样的简单数组成员,您可以使用JSON.parse
.
var array = JSON.parse("[" + string + "]");
这为您提供了一个数字数组。
[0, 1]
如果你使用.split()
,你最终会得到一个字符串数组。
["0", "1"]
请注意,这JSON.parse
将限制您使用支持的数据类型。如果您需要像undefined
或 函数这样的值,则需要使用eval()
, 或 JavaScript 解析器。
如果你想使用.split()
,但你也想要一个数字数组,你可以使用Array.prototype.map
,尽管你需要为 IE8 及更低版本填充它,或者只编写一个传统的循环。
var array = string.split(",").map(Number);
将,
其拆分为角色;
var string = "0,1";
var array = string.split(",");
alert(array[0]);
这在ES6 中很容易实现;
您可以使用Array.from('string')将字符串转换为数组;
Array.from("01")
将 console.log
['0', '1']
这正是您要寻找的。
如果字符串已经是列表格式,则可以使用 JSON.parse:
var a = "['a', 'b', 'c']";
a = a.replace(/'/g, '"');
a = JSON.parse(a);
var array = (new Function("return [" + str+ "];")());
var string = "0,1";
var objectstring = '{Name:"Tshirt", CatGroupName:"Clothes", Gender:"male-female"}, {Name:"Dress", CatGroupName:"Clothes", Gender:"female"}, {Name:"Belt", CatGroupName:"Leather", Gender:"child"}';
var stringArray = (new Function("return [" + string+ "];")());
var objectStringArray = (new Function("return [" + objectstring+ "];")());
JSFiddle https://jsfiddle.net/7ne9L4Lj/1/
- JSON.parse("[" + string + "]"); // throw error
- string.split(",")
// unexpected result
["{Name:"Tshirt"", " CatGroupName:"Clothes"", " Gender:"male-female"}", " {Name:"Dress"", " CatGroupName:"Clothes"", " Gender:"female"}", " {Name:"Belt"", " CatGroupName:"Leather"", " Gender:"child"}"]