如何将字符串转换为 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]);
如果字符串已经是列表格式,您可以使用 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"}"]
对于像这样的简单数组成员,您可以使用 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] );
如何在 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() – 开头/结尾的分隔符:
正则表达式分隔符:
捕获括号:
带限制参数的 Split()
查看此链接 ==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
我删除字符 '[',']' 并使用 ',' 进行拆分
let array = stringObject.replace('[','').replace(']','').split(",").map(String);
更多“自己尝试”示例如下。
定义和用法 split() 方法用于将字符串拆分为子字符串数组,并返回新数组。
提示:如果使用空字符串 ("") 作为分隔符,则字符串将在每个字符之间进行分割。
注意: split() 方法不会更改原始字符串。
var res = str.split(",");
您可以使用 javascript Spread Syntax将字符串转换为数组。在下面的解决方案中,我删除了逗号,然后将字符串转换为数组。
var string = "0,1"
var array = [...string.replace(',', '')]
console.log(array[0])
var i = "[{a:1,b:2}]",
j = i.replace(/([a-zA-Z0-9]+?):/g, '"$1":').replace(/'/g,'"'),
k = JSON.parse(j);
console.log(k)
// => 声明正则表达式
[a-zA-Z0-9] => 匹配所有 az, AZ, 0-9
(): => 对所有匹配的元素进行分组
$1 => 替换字符串是指正则表达式中的第一个匹配组。
g => 全局标志
Split(",") 可以将带逗号的字符串转换成字符串数组,这是我的代码片段。
var input ='Hybrid App, Phone-Gap, Apache Cordova, HTML5, JavaScript, BootStrap, JQuery, CSS3, Android Wear API'
var output = input.split(",");
console.log(output);
[“混合应用”、“Phone-Gap”、“Apache Cordova”、“HTML5”、“JavaScript”、“BootStrap”、“JQuery”、“CSS3”、“Android Wear API”]
使用示例Array.filter
:
var str = 'a,b,hi,ma,n,yu';
var strArr = Array.prototype.filter.call(str, eachChar => eachChar !== ',');
你为什么不替换,
逗号和split('')
这样的字符串,这将导致['0', '1']
,此外,你可以将结果包装成parseInt()
将元素转换为整数类型。
it('convert string to array', function () {
expect('0,1'.replace(',', '').split('')).toEqual(['0','1'])
});