Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将带逗号的字符串转换为数组_Javascript_Arrays_String_Deserialization - Fatal编程技术网

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]); 对于这样

如何将字符串转换为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]);

对于这样的简单数组成员,可以使用
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)