Javascript 筛选重复项并将其分组到单独的数组中

Javascript 筛选重复项并将其分组到单独的数组中,javascript,Javascript,我需要获得具有完全相同的键1和键2(重复)的对象。对象之间的差异键3必须小于1才能将这些对象作为副本传递。这些对象必须分组到单独的数组中。不重复的对象是无关的,不会出现在输出中 输入 输出 [ [ { key1: 'A', key2: 'B', key3: 5 }, { key1: 'A', key2: 'B',

我需要获得具有完全相同的键1和键2(重复)的对象。对象之间的差异键3必须小于1才能将这些对象作为副本传递。这些对象必须分组到单独的数组中。不重复的对象是无关的,不会出现在输出中

输入

输出

[
    [
        {
            key1: 'A',
            key2: 'B',
            key3: 5
        },
        {
            key1: 'A',
            key2: 'B',
            key3: 5
        },
        {
            key1: 'A',
            key2: 'B',
            key3: 6
        },
        {
            key1: 'A',
            key2: 'B',
            key3: 7
        }
    ],
    [
        {
            key1: 'C',
            key2: 'V',
            key3: 6
        },
        {
            key1: 'C',
            key2: 'V',
            key3: 7
        }
    ]
]

我有一个大的重复列表,但我很难将它们分组

您可以使用
集合
存储具有相同
key1
key2
的对象,然后获取具有多个匹配项的对象:

let set={};
让列表=[
{
键1:‘A’,
键2:‘B’,
关键3:5
},
{
键1:‘C’,
键2:‘V’,
关键3:7
},
{
键1:‘C’,
键2:‘V’,
关键3:1
},
{
键1:‘A’,
键2:‘B’,
关键3:3
},
{
键1:‘A’,
键2:‘B’,
关键3:5
},
{
键1:‘L’,
键2:‘V’,
关键3:1
}
];
for(设i=0;i1){
res.push(设置[键])
}
}

控制台日志(res)
您好,您需要得到
\ucode>JS的帮助

var数据=[
{
键1:‘A’,
键2:‘B’,
关键3:5
},
{
键1:‘C’,
键2:‘V’,
关键3:7
},
{
键1:‘C’,
键2:‘V’,
关键3:6
},
{
键1:‘A’,
键2:‘B’,
关键3:3
},
{
键1:‘A’,
键2:‘B’,
关键3:5
},
{
键1:‘L’,
键2:‘V’,
关键3:1
},
{
键1:‘A’,
键2:‘B’,
关键3:6
},
{
键1:‘A’,
键2:‘B’,
关键3:7
}
];
var FinalGroup=[];
Object.values(u.groupBy(数据,'key1','key2')).map(函数(数据组){
var subgroup=uq.uniq(数据组,obj=>obj.key3);
如果(子组长度>1){
finalgroup.push(子组)
}
});
console.log(最终组)

谢谢,看起来很有帮助。我必须学习一点关于set的知识。我还忘记了一些小细节(对象之间的差异键3)。我已经在主帖中编辑过了。你能检查一下吗?你所说的对象key3之间的差异是什么意思?例如,如果我们有两个对象,object1.key3=3.5和object2.key3=5,那么它们就不符合复制的条件,因为它们之间的差异是1.5(大于1),请分享你当前的代码,这样社区将帮助改进它以获得所需的输出。
[
    [
        {
            key1: 'A',
            key2: 'B',
            key3: 5
        },
        {
            key1: 'A',
            key2: 'B',
            key3: 5
        },
        {
            key1: 'A',
            key2: 'B',
            key3: 6
        },
        {
            key1: 'A',
            key2: 'B',
            key3: 7
        }
    ],
    [
        {
            key1: 'C',
            key2: 'V',
            key3: 6
        },
        {
            key1: 'C',
            key2: 'V',
            key3: 7
        }
    ]
]