Javascript 将带逗号的字符串转换为数组
如何将字符串转换为JavaScript数组 看看代码:Javascript 将带逗号的字符串转换为数组,javascript,arrays,string,deserialization,Javascript,Arrays,String,Deserialization,如何将字符串转换为JavaScript数组 看看代码: var string = "0,1"; var array = [string]; alert(array[0]); 在这种情况下,警报将弹出一个0,1。当它是一个数组时,它会弹出一个0,当警报(数组[1])时,应弹出1 是否有机会将此类字符串转换为JavaScript数组?在,字符上进行转换 var string = "0,1"; var array = string.split(","); alert(array[0]); 对于这样
var string = "0,1";
var array = [string];
alert(array[0]);
在这种情况下,警报将弹出一个0,1
。当它是一个数组时,它会弹出一个0
,当警报(数组[1])调用code>时,应弹出1
是否有机会将此类字符串转换为JavaScript数组?在,
字符上进行转换
var string = "0,1";
var array = string.split(",");
alert(array[0]);
对于这样的简单数组成员,可以使用JSON.parse
var array = JSON.parse("[" + string + "]");
这将为您提供一个数字数组
[0, 1]
如果使用.split()
,最终将得到一个字符串数组
["0", "1"]
请注意,JSON.parse
将限制您使用受支持的数据类型。如果需要未定义的或函数之类的值,则需要使用eval()
或JavaScript解析器
如果您想使用.split()
,但您也想要一个数字数组,那么您可以使用Array.prototype.map
,尽管您需要为IE8和更低版本填充它,或者只编写一个传统循环
var array = string.split(",").map(Number);
您可以使用split
参考:
“0,1”.split(',)
对于这样的简单数组成员,可以使用JSON.parse
var listValues = "[{\"ComplianceTaskID\":75305,\"RequirementTypeID\":4,\"MissedRequirement\":\"Initial Photo Upload NRP\",\"TimeOverdueInMinutes\":null}]";
var array = JSON.parse("[" + listValues + "]");
这将为您提供一个数字数组
[0, 1]
现在,变量值类似于array.length=1
价值产出
array[0].ComplianceTaskID
array[0].RequirementTypeID
array[0].MissedRequirement
array[0].TimeOverdueInMinutes
将内置映射函数与匿名函数一起使用,如下所示:
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] );
如果字符串已经是列表格式,则可以使用JSON.parse:
var a = "['a', 'b', 'c']";
a = a.replace(/'/g, '"');
a = JSON.parse(a);
转换所有类型的字符串
JSFIDLE
结果在控制台中
有些做法不支持对象字符串
这在ES6中很容易实现
可以使用将字符串转换为数组
将显示console.log
['0', '1']
这正是您想要的。为什么不替换,
逗号和拆分(“”)
这样的字符串,它将导致['0','1']
,此外,您可以将结果包装到parseInt()
中,将元素转换为整数类型
it('convert string to array', function () {
expect('0,1'.replace(',', '').split('')).toEqual(['0','1'])
});
使用ES6的另一个选项是使用Spread语法
var convertedArray=[…“01234”]代码>
var stringToConvert=“012”;
var convertedArray=[…stringToConvert];
控制台日志(convertedArray)代码>我删除字符“[”,“]”,并使用“,”进行拆分
let array = stringObject.replace('[','').replace(']','').split(",").map(String);
var i=“[{a:1,b:2}]”,
j=i.替换(/([a-zA-Z0-9]+?):/g,“$1”:”)。替换(/”/g,“),
k=JSON.parse(j);
log(k)
Split(“,”)可以将带有逗号的字符串转换为字符串数组,下面是我的代码片段
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“]
下面有更多“自己尝试”的例子
定义和用法
split()方法用于将字符串拆分为子字符串数组,并返回新数组
提示:如果使用空字符串(“”)作为分隔符,则字符串将在每个字符之间分割
注意:split()方法不会更改原始字符串
var res = str.split(",");
使用Array.filter
的示例:
var str = 'a,b,hi,ma,n,yu';
var strArr = Array.prototype.filter.call(str, eachChar => eachChar !== ',');
有关在javascript中使用以下方法将字符串转换为数组的更多示例:
拆分()–无分隔符:
Split()–空字符串分隔符:
拆分()–开始/结束处的分隔符:
正则表达式分隔符:
捕获括号:
带限制参数的Split()
查看此链接
==>
您可以使用javascript将字符串转换为数组
var string = "0,1"
var array = [...string.replace(',', '')]
console.log(array[0])
正则表达式
作为拆分
的更强大的替代方案,您可以使用
让a=“0,1”匹配(/\d+/g)
console.log(a);
还要注意,JSON.parse();
在IE6、IE7中不可用。我认为在这种情况下,String.split(',');
更容易。@scunliffe:True,需要一个垫片,或者可以使用jQuery方法填充var数组=(新函数(“return[“+String+”;”)))()
。使用.split()
如果不需要数字就可以了,否则你需要映射结果。@Downvoter:试着描述答案的错误,这样我就可以证明你的错误。@我讨厌懒惰,因为它不支持对象字符串。请看这里@FarzadYZ小心(使用eval
)。如果数组包含来自客户端输入的值,这将是不安全的。根据您的需要,字符串和数组已经非常相似(即,在您的问题中,string[0]===“0”
),在大多数情况下,您可以将字符串视为字符数组,并对其使用数组方法。@PaulS.:在IE8和更低版本中,这将失败。支持所有类型字符串的最佳做法可能重复。请参阅此处,这是最普遍适用的答案。JSON不能用于任意分隔符(例如制表符、空格等)当数组值是可能包含逗号的字符串值时,这将不起作用。例如:“123,'带逗号的字符串',456”
。您可以使用更复杂的正则表达式来正确处理此类情况(例如类似建议的情况)@Wilt well不,不会的,但是你可以使用正则表达式来修复这个问题。我不是有意批评你的答案,但我写这篇文章是因为我使用了你的解决方案,自己也遇到了这个问题。我想把评论留给可能遇到类似问题的其他人。这太棒了。我将代码从JSON.parse
移动到Array.from代码>作为我使用的ES6
。谢谢Ray Kim
这在任何版本的IE中都不受支持。小心点,但是数组。从(“0,1233”)
返回[“0”,“1”,“1”,“1”,“2”,“3”,“3”]
,如果我想要[0,1233]
?糟糕的解决方案!更多信息请查看https://gi
var str = 'a,b,hi,ma,n,yu';
var strArr = Array.prototype.filter.call(str, eachChar => eachChar !== ',');
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"]
var string = "0,1"
var array = [...string.replace(',', '')]
console.log(array[0])
"0,1".match(/\d+/g)