如何将字符串转换为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数组?
Answers:
对于像这样的简单数组成员,可以使用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();
在IE6,IE7中不可用。我认为在这种情况下String.split(',');
比较容易。
var array = (new Function("return [" + string + "];"))()
。使用.split()
是正常的,如果不需要数字,否则你需要映射的结果。
eval
)。如果数组包含来自客户端输入的值,这将是不安全的。
这在ES6中很容易实现;
您可以使用Array.from('string')将字符串转换为Arrays ;
Array.from("01")
将console.log
['0', '1']
正是您要找的东西。
JSON.parse
移至Array.from
,照常使用ES6
。谢谢Ray Kim
Array.from("0, 1, 233")
会回来吗["0", ",", " ", "1", ",", " ", "2", "3", "3"]
,如果我想要[0, 1, 233]
呢?
Set
字符串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"}"]
对于像这样的简单数组成员,可以使用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的另一个选项是使用Spread语法。
var convertedArray = [..."01234"];
var stringToConvert = "012";
var convertedArray = [...stringToConvert];
console.log(convertedArray);
使用内置地图功能和匿名功能,如下所示:
string.split(',').map(function(n) {return Number(n);});
[编辑]这是您将如何使用它
var string = "0,1";
var array = string.split(',').map(function(n) {
return Number(n);
});
alert( array[0] );
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()
查看此链接==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
我删除字符'[',']'并用','分割
let array = stringObject.replace('[','').replace(']','').split(",").map(String);
Split(“,”)可以将带逗号的字符串转换为String数组,这是我的代码段。
var input ='Hybrid App, Phone-Gap, Apache Cordova, HTML5, JavaScript, BootStrap, JQuery, CSS3, Android Wear API'
var output = input.split(",");
console.log(output);
[“混合应用程序”,“电话间隙”,“ Apache Cordova”,“ HTML5”,“ JavaScript”,“ BootStrap”,“ JQuery”,“ CSS3”,“ Android Wear API”]
string[0] === '0'
在您的问题中),在大多数情况下,您可以将字符串视为字符数组,并在其上使用数组方法。