如何将字符串转换为JavaScript数组?

看看代码:

var string = "0,1";
var array = [string];
alert(array[0]);

在这种情况下,警报显示0,1。如果它是一个数组,它将显示0。如果调用alert(数组[1]),它应该弹出1

是否有机会将这样的字符串转换为JavaScript数组?


当前回答

对于这样的简单数组成员,可以使用JSON.parse。

var listValues = "[{\"ComplianceTaskID\":75305,\"RequirementTypeID\":4,\"MissedRequirement\":\"Initial Photo Upload NRP\",\"TimeOverdueInMinutes\":null}]";

var array = JSON.parse("[" + listValues + "]");

这给了你一个数字数组。

现在你的变量值是array。length=1

值输出

array[0].ComplianceTaskID
array[0].RequirementTypeID
array[0].MissedRequirement
array[0].TimeOverdueInMinutes

其他回答

如何转换逗号分隔字符串成一个数组在JavaScript?

var string = 'hello, world, test, test2, rummy, words';
var arr = string.split(', '); // split string on comma space
console.log( arr );
 
//Output
["hello", "world", "test", "test2", "rummy", "words"]

在javascript中使用以下方式转换字符串到数组的更多示例:

Split() -没有分隔符: Split() -空字符串分隔符: Split() -开始/结束的分隔符: 正则表达式分隔符: 捕捉括号: 带有Limit参数的Split() 看看这个链接 = = > https://www.tutsmake.com/javascript-convert-string-to-array-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);

如果字符串已经是列表格式,你可以使用JSON.parse:

var a = "['a', 'b', 'c']";
a = a.replace(/'/g, '"');
a = JSON.parse(a);

使用ES6的另一个选项是使用扩展语法。

var convertedArray =[…"01234"];

var stringToConvert = "012"; var convertedArray =[…stringToConvert]; console.log (convertedArray);

你可以使用javascript扩展语法将字符串转换为数组。在下面的解决方案中,我删除了逗号,然后将字符串转换为数组。

var string = "0,1"
var array = [...string.replace(',', '')]
console.log(array[0])