用逗号将string转换为数组

如何将string转换为JavaScript数组?

看代码:

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

在这种情况下, alert会popup一个0,1 。 当它是一个数组的时候,会popup一个0 ,当alert(array[1]); 被称为,它应该popup的1

有没有机会将这样的string转换成JavaScript数组?

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

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

这给你一个数组的数组。

 [0, 1] 

如果你使用.split() ,你会得到一个string数组。

 ["0", "1"] 

请注意, JSON.parse会将您限制为受支持的数据types。 如果您需要undefined或函数的值,则需要使用eval()或JavaScriptparsing器。


如果你想使用.split() ,但你也想要一个数组数组,你可以使用Array.prototype.map ,尽pipe你需要为它IE8和更低或只是写一个传统的循环。

 var array = string.split(",").map(Number); 

把它拆分成字符;

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

这在ES6中很容易实现;

您可以使用Array.from('string')将string转换为数组。

 Array.from("01") 

将console.log

 ['0', '1'] 

这正是你要找的。

如果string已经是列表格式,那么可以使用JSON.parse:

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

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

 var listValues = "[{\"ComplianceTaskID\":75305,\"RequirementTypeID\":4,\"MissedRequirement\":\"Initial Photo Upload NRP\",\"TimeOverdueInMinutes\":null}]"; var array = JSON.parse("[" + listValues + "]"); 

这给你一个数组的数组。

现在你的variables值就像array.length = 1

价值输出

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

转换所有types的string

 var array = (new Function("return [" + str+ "];")()); 

为什么最好的做法是,使其接受string和对象string

 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/

结果在控制台中

在这里输入图像描述

有些练习不支持对象string

 - 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"}"] 

你可以使用split

参考: http : //www.w3schools.com/jsref/jsref_split.asp

"0,1".split(',')

使用带有匿名函数的内置映射函数,如下所示:

 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] ); 

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

var convertedArray = [..."01234"];

 var stringToConvert = "012"; var convertedArray = [...stringToConvert]; console.log(convertedArray); 
 var i = "[{a:1,b:2}]", j = i.replace(/([a-zA-Z0-9]+?):/g, '"$1":').replace(/'/g,'"'), k = JSON.parse(j); console.log(k) 

你为什么不replace,逗号和split('')的string,将导致['0', '1'] ,此外,你可以将结果包装成parseInt()将元素转换为整型。

 it('convert string to array', function () { expect('0,1'.replace(',', '').split('')).toEqual(['0','1']) }); 

你也可以使用这个数组 – 使数组包装任何值的开源组件。

例子:

  makeArray(1) // => [1] makeArray([1]) // => [1] makeArray(null) // => [] 

其3个testing之一包装一个数组的string:

 makeArray() should wrap an empty string with an array 

我删除了字符'[',']',并用','

let array = stringObject.replace('[','')。replace(']','')。split(“,”)。

拆分(“,”)可以将string转换为一个string数组,这是我的代码片段。

  var input ='Hybrid App, Phone-Gap, Apache Cordova, HTML5, JavaScript, BootStrap, JQuery, CSS3, Android Wear API' var output = input.split(","); console.log(output); 

[“Hybrid App”,“Phone-Gap”,“Apache Cordova”,“HTML5”,“JavaScript”,“BootStrap”,“JQuery”,“CSS3”,“Android Wear API”]