使用javascript中的给定数组创建嵌套数组

使用javascript中的给定数组创建嵌套数组,javascript,arrays,nested,Javascript,Arrays,Nested,我想在Javascript中创建一个嵌套数组,并用相同的属性对数据进行分组。我有大量的单个数组,如下所示: var v=['d','c',['c','e','g','h']]; var w=['c','d',['d','e','f']]; var x=['a','b',['b','c','d']]; var y=['b','a',['a','c','e']]; var u=['e','f',['b','c','e']]; var t=['a','c',['b','c','e','f','g']]

我想在Javascript中创建一个嵌套数组,并用相同的属性对数据进行分组。我有大量的单个数组,如下所示:

var v=['d','c',['c','e','g','h']];
var w=['c','d',['d','e','f']];
var x=['a','b',['b','c','d']];
var y=['b','a',['a','c','e']];
var u=['e','f',['b','c','e']];
var t=['a','c',['b','c','e','f','g']];        
我试过以下方法

var z=[];
var a=[];

z.push([t]);
z.push([u]);
z.push([v]);
z.push([w]);    
z.push([x]);
z.push([y]);


var k,j;
for(j=0;j<6;j++){
    for(k=j+1;k<6;k++){
        if(z[j][0]==z[k][1]&& z[j][1]==z[k][0])            
        a.push([z[j][0], z[j][1], z[j][2],z[k][2]]);
     } 
  }
我是javascript新手,如果我问错了问题,我很抱歉。我需要一个数组来返回

在这里,我想将数组中的数据分组到那些具有匹配项的对,即第一个数组0索引值与第二个数组1索引值,第一个数组1索引值与第二个数组0索引值,并将这些匹配项分组到一个数组中,然后推送到数组a

在上述预期输出中,数组v与数组u匹配 所以我只想取组中的值v[0],v[1],v[2]和u[2],忽略u[0]和u[1]。并将组推到阵列a


这样我就可以在我的程序中返回数组a了

您的数组已经是数组了,当您按下它们时,您不需要将“[]”放在它们周围

请尝试concat:

z.push(v.concat(w)).push(x.concat(y));// duplicates will be present.

然后使用中所示的方法删除重复项。

在['c'、'e'、'g'、'h']['d'、'e'、'f']之间缺少逗号?您仍然希望z=[v,w,y,z]而不是z=[v]、[w]、[y]、[z]@Bergi,这里我想将数组中的数据分组到具有匹配项的对中,即第一个数组0索引值与第二个数组1索引值,第一个数组1索引值与第二个数组0索引值,并将这些匹配项分组在一个数组中并推送到数组a。这样我就可以在我的程序中返回数组a了。@bik因为我不是在说a,所以你要迭代的是z!您应该使用变量创建数组,而不是数组数组。push采用普通值。@Bergi哦,对不起。我想这是我的错误,我应该使用z=[v,w,y,z],我将尝试将匹配项分组到一个数组中,并将其推送到一个数组中,因为我需要返回包含数组的数组。我想扫描数组z,否则我怎么知道v&w和x&y有匹配项……我只给出了样本数组t,u,v,w,x,y。我有这么多的数组,需要扫描
z.push(v.concat(w)).push(x.concat(y));// duplicates will be present.