在javascript中查找并合并与数组的重复匹配

在javascript中查找并合并与数组的重复匹配,javascript,arrays,Javascript,Arrays,下面是一个产品数组,它已在联系人数据上找到和处理,并创建可能的合并事件数组。 在下面的arrProduct中,我想过滤重复的数组并与现有数组合并,最后创建一个名为arrFinalProduct的唯一数组产品 阵列产品 arrProduct = [ [ 0 ], [ 1, 2 ], [ 2 ], [ 3 ], [ 4, 5, 6, 10 ], [ 5, 6, 7, 11 ], [ 6 ],

下面是一个产品数组,它已在联系人数据上找到和处理,并创建可能的合并事件数组。 在下面的arrProduct中,我想过滤重复的数组并与现有数组合并,最后创建一个名为arrFinalProduct的唯一数组产品

阵列产品

arrProduct = 
    [ 
      [ 0 ],
      [ 1, 2 ],
      [ 2 ],
      [ 3 ],
      [ 4, 5, 6, 10 ],
      [ 5, 6, 7, 11 ],
      [ 6 ],
      [ 7, 11 ],
      [ 8 ],
      [ 9 ],
      [ 10 ],
      [ 11 ],
      [ 12 ],
      [ 13, 14 ],
      [ 14 ]
    ]
arrFinalProduct = 
    [ 
      [ 0 ],
      [ 1, 2 ],
      [ 3 ],
      [ 4, 5, 6, 7, 10, 11 ],
      [ 8 ],
      [ 9 ],
      [ 12 ],
      [ 13, 14 ]
    ]
最终产品

arrProduct = 
    [ 
      [ 0 ],
      [ 1, 2 ],
      [ 2 ],
      [ 3 ],
      [ 4, 5, 6, 10 ],
      [ 5, 6, 7, 11 ],
      [ 6 ],
      [ 7, 11 ],
      [ 8 ],
      [ 9 ],
      [ 10 ],
      [ 11 ],
      [ 12 ],
      [ 13, 14 ],
      [ 14 ]
    ]
arrFinalProduct = 
    [ 
      [ 0 ],
      [ 1, 2 ],
      [ 3 ],
      [ 4, 5, 6, 7, 10, 11 ],
      [ 8 ],
      [ 9 ],
      [ 12 ],
      [ 13, 14 ]
    ]
arrProduct是产品数组,arrFinalProduct是最终产品数组。基本逻辑是,如果从数组中找到任何匹配项,则需要合并数组

假设在arrProduct的任何索引中都找不到值0,因此它不会合并并推送到arrFinalProduct中, arrProduct值2位于第一个索引和第二个索引上,因此它可以与第一个索引合并,成为[1,2],并删除[2]的第三个索引。 乘积指数5有两个公共值5和6,它也在指数6中,因此它可能合并为1,变成“4,5,6,7”,以此类推

这个过程将递归地处理数据,直到我从数组中找到唯一的值为止。所以它可能会水平合并数组


希望读者能有足够的想法。

基本上,您可以在结果集中搜索现有项目,并使用相同的项目加入数组

项目的顺序与外观相同

var数组=[[0]、[1,2]、[2]、[3]、[4,5,6,10]、[5,6,7,11]、[6]、[7,11]、[8]、[9]、[10]、[11]、[12]、[13,14]、[14],
结果=数组.reduce(函数(r,a){
r、 一些(函数(b,i,bb){
如果(a.some(c=>b.includes(c))){
bb[i]=[…新集合(b.concat(a))];
返回true;
}
})| |右推(a);
返回r;
}, []);
控制台日志(结果)

.as console wrapper{max height:100%!important;top:0;}
您尝试过什么吗?是的,实际上我对数据进行了处理并找到了重复的数据。这是这些事件的数组。要求家庭作业帮助的问题必须包括到目前为止你为解决问题所做的工作的摘要,以及你解决问题的困难的描述。你能在问题中也包括这些代码吗?具体来说,
[4,5,6,7,10,11]的逻辑是什么,
在输出中