如何将字符串转换为JavaScript数组?
看看代码:
var string = "0,1";
var array = [string];
alert(array[0]);
在这种情况下,警报显示0,1。如果它是一个数组,它将显示0。如果调用alert(数组[1]),它应该弹出1
是否有机会将这样的字符串转换为JavaScript数组?
如何将字符串转换为JavaScript数组?
看看代码:
var string = "0,1";
var array = [string];
alert(array[0]);
在这种情况下,警报显示0,1。如果它是一个数组,它将显示0。如果调用alert(数组[1]),它应该弹出1
是否有机会将这样的字符串转换为JavaScript数组?
当前回答
使用Array.filter的示例:
var str = 'a,b,hi,ma,n,yu';
var strArr = Array.prototype.filter.call(str, eachChar => eachChar !== ',');
其他回答
对于这样的简单数组成员,可以使用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
这在ES6中很容易实现;
你可以使用Array.from('string')将字符串转换为数组;
Array.from("01")
将console.log
['0', '1']
这正是你想要的。
下面是更多“自己试试”的例子。
定义和用法 split()方法用于将字符串拆分为子字符串数组,并返回新数组。
提示:如果使用空字符串(“”)作为分隔符,则字符串在每个字符之间被分割。
注意:split()方法不会改变原始字符串。
var res = str.split(",");
转换所有类型的字符串
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"}"]
使用ES6的另一个选项是使用扩展语法。
var convertedArray =[…"01234"];
var stringToConvert = "012"; var convertedArray =[…stringToConvert]; console.log (convertedArray);