Javascript 创建没有重复项的多维对象数组

Javascript 创建没有重复项的多维对象数组,javascript,arrays,loops,Javascript,Arrays,Loops,这里需要一些指导:我正在做的是从一个对象数组开始创建一个新的多维对象数组: [ {number:111, connectedNumber: 112, ...}, {number:112, connectedNumber: 111, ...}, {number:113, connectedNumber: 114, ...}, {number:114, connectedNumber: 113, ...} .... ] 最后,我需要得到一个新的多维数组,其中包含多组相关对象: [ [{num

这里需要一些指导:我正在做的是从一个对象数组开始创建一个新的多维对象数组:

[
{number:111, connectedNumber: 112, ...},
{number:112, connectedNumber: 111, ...},
{number:113, connectedNumber: 114, ...},
{number:114, connectedNumber: 113, ...}
....
]
最后,我需要得到一个新的多维数组,其中包含多组相关对象:

[
   [{number:111, connectedNumber: 112, ...}, {number:112, connectedNumber: 111, ...}],
   [{number:113, connectedNumber: 114, ...}, {number:114, connectedNumber: 113, ...}],
]
如您所见,它们与
number===connecetedNumber
相关

到目前为止,我所做的是创建一个新数组,并在原始对象列表中循环,检查
number===conneceednumber
是否添加到新数组中:

for (let j = count; numbers.length > j; j++) {
            organizedNumber.push([numbers[j]]);

            for (let k = j; numbers.length > k; k++) {
                if (numbers[j].number === numbers[k].connectedNumber) {
                   organizedNumber[j].push(numbers[k]);
                }
            }
        }
但这将返回以下格式的新数组:

[
   [{number:111, connectedNumber: 112, ...}, {number:112, connectedNumber: 111, ...}],
   [{number:112, connectedNumber: 111, ...}],
   [{number:113, connectedNumber: 114, ...}, {number:114, connectedNumber: 113, ...}],
   [{number:114, connectedNumber: 113, ...}],
....
]
正如您所看到的,循环在每个元素上运行(如预期的那样),并添加它已经添加到上一个数组中的下一个元素


请在此提供任何指南。

您可以查找想要的组并将对象添加到其中或创建一个新组

var data=[{number:111,connectedNumber:112},{number:112,connectedNumber:111},{number:113,connectedNumber:114},{number:114,connectedNumber:113}],
分组=数据。减少((r,o)=>{
常数
caseA=a=>a.some({number}=>o.connectedNumber==number),
caseB=a=>a.some({connectedNumber}=>o.number===connectedNumber),
temp=r.find(caseA)| | r.find(caseB)| |[];
如果(!temp.length)r.push(温度);
温度推力(o);
返回r;
}, []);
控制台日志(分组)

。作为控制台包装器{max height:100%!important;top:0;}
您能澄清一下什么是所需的输入和输出,元素很少吗?从您的长示例中还不完全清楚。您是否知道原始数据中始终会有对,即没有孤立项?您是否总是先有
number
,然后再有
connectedNumber
?或者它是随机排列的吗?看起来你有一张图,想把它分成几个部分。有关基本算法,请参见。太棒了!,谢谢@Nina Scholz