如何将一个字符串转换为 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);
JSON.parse();
在IE6和IE7中不可用。我认为在这种情况下,使用String.split(',');
会更容易。 - scunliffevar array = (new Function("return [" + string + "];"))()
。如果不需要数字,则使用 .split()
是可以的,否则您需要对结果进行 map 映射。 - I Hate Lazystring.split(',');
OR for of & push
- user8202629这在ES6中很容易实现;
您可以使用Array.from('string')将字符串转换为数组;
Array.from("01")
将会使用console.log打印
['0', '1']
这正是你所寻找的。
JSON.parse
转换成了Array.from
,因为我正在使用ES6
。谢谢Ray Kim
。 - Eshwar Prasad YaddanapudiArray.from("0, 1, 233")
将返回 ["0", ",", " ", "1", ",", " ", "2", "3", "3"]
,如果我想要 [0, 1, 233]
呢? - Tina ChenSet
时,此方法才是可靠的。 - vhsvar 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"}"]
对于这样简单的数组成员,您可以使用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);
使用内置的map函数和匿名函数,如下所示:
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] );
"123, 'a string with a , comma', 456"
。您可以使用更复杂的正则表达式来正确处理这些情况(例如像这里建议的那样)。 - Wiltstring.split(',').map(Number)
。 - ya.teckvar 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() - 分隔符位于开头/结尾:
正则表达式分隔符:
捕获括号:
带有限制参数的Split()
请查看此链接 ==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
string[0] === '0'
),在大多数情况下,您可以将字符串视为字符数组并在其上使用数组方法。 - Paul S.