Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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_Jagged Arrays - Fatal编程技术网

Javascript 如何将字符串转换为具有交错数组的数组

Javascript 如何将字符串转换为具有交错数组的数组,javascript,arrays,jagged-arrays,Javascript,Arrays,Jagged Arrays,我正在编写一个函数,该函数接收如下格式的字符串: "Fred:Corwill;Wilfred:Corwill;Barney:Tornbull;Betty:Tornbull;Bjon:Tornbull;Raphael:Corwill;Alfred:Corwill" 我想将其放入一个数组中,然后在锯齿状数组中转换每个键值,如下所示: [["Fred":]["Corwill";]["Alfred:"]["Corwill"]] 我尝试使用split()创建一个初始数组,然后创建第二个数组 推绳子的每

我正在编写一个函数,该函数接收如下格式的字符串:

"Fred:Corwill;Wilfred:Corwill;Barney:Tornbull;Betty:Tornbull;Bjon:Tornbull;Raphael:Corwill;Alfred:Corwill"
我想将其放入一个数组中,然后在锯齿状数组中转换每个键值,如下所示:

[["Fred":]["Corwill";]["Alfred:"]["Corwill"]]
我尝试使用split()创建一个初始数组,然后创建第二个数组 推绳子的每一部分,但都不起作用,我怎么能做到呢 锯齿阵列分裂

这是我的密码:

function meeting(s) {
    var initialArray = s.split(' ');
    var jaggedArray = [];
    for(var i = 0; i < initialArray.length; i++) {
     jaggedArray.push(initialArray[i]);
    }
}
功能会议{
var initialArray=s.split(“”);
var jaggedArray=[];
对于(变量i=0;i
函数拆分多(str、令牌){
var tempChar=tokens[0];//我们可以将第一个标记用作临时连接字符
for(var i=1;i对于(var i=0;i,目前,您的尝试对于实现所需的结果没有多大作用,因为您使用的是空格
.split(“”
),但是字符串没有空格,因此根本没有实现多少效果

相反,您可以使用来拆分当前字符串。通过使用正则表达式,您可以更精确地控制拆分字符串的方式。下面,我使用了:

/(\w+[:;])/
在这里,我将字符串按单词字符(连续)(
\w+
)拆分,后跟分号(
)或冒号(

但是,这将返回一个一维数组,其中包含额外的
(空)字符串。因此,我还用于删除空字符串,并将每个分割值放入其自己的数组中,从而给出结果

请参见下面的工作示例:

const str=“弗雷德:科威尔;威尔弗雷德:科威尔;巴尼:托恩布尔;贝蒂:托恩布尔;比昂:托恩布尔;拉斐尔:科威尔;阿尔弗雷德:科威尔”,
res=str.split(/(\w+[:;])/)。reduce((acc,wrd)=>wrd?[…acc,[wrd]]:acc,[]);

console.log(res);
要通过
拆分字符串,只需使用正则表达式,即可在
.split()
方法中获得所需的结果

const names = "Fred:Corwill;Wilfred:Corwill;Barney:Tornbull;Betty:Tornbull;Bjon:Tornbull;Raphael:Corwill;Alfred:Corwill"

const separatedNames = names.split(/:|;/) 

console.log(separatedNames) // => ["Fred", "Corwill", ...] 

请参见示例:

您的输出数组语法无效,将
放在数组中字符串的外部是不正确的-这些数组应该在字符串中吗?如果我们假设它们应该在字符串中,则生成的数组不是锯齿状的。(更准确地说,外部数组中的数组都是相同长度的。)请提供一个语法正确的示例,说明您要查找的结果。为什么在输入字符串中没有空格的情况下,您的代码会在空格上拆分?因为我不知道您想要实现什么,因为我不理解在这种情况下它会“锯齿状”的原因。我猜您要查找的是类似这样的东西=>
const names = "Fred:Corwill;Wilfred:Corwill;Barney:Tornbull;Betty:Tornbull;Bjon:Tornbull;Raphael:Corwill;Alfred:Corwill"

const separatedNames = names.split(/:|;/) 

console.log(separatedNames) // => ["Fred", "Corwill", ...]