gpt4 book ai didi

javascript - 对象的过滤器和唯一数组

转载 作者:行者123 更新时间:2023-11-30 14:19:51 25 4
gpt4 key购买 nike

我有一个对象数组。每个对象都有两个字段“类型”和“位置”。我想知道是否有任何对象(在此数组中)具有相同的“类型”和“位置”(并获取它)。我怎样才能意识到呢?我知道如何过滤数组,但如何与其他对象进行比较?

var array = forms.filter(function (obj) {
返回 obj.type === 100
});

最佳答案

你可以拿一个Map ,对相同类型/位置的对象进行分组,并过滤​​长度大于 1 的分组结果。

var data = [{ type: 'a', position: 1 }, { type: 'b', position: 1 }, { type: 'a', position: 1 }, { type:'a', position: 2 }, { type: 'b', position: 2 }, { type: 'c', position: 1 }, { type:'c', position: 1 }],
duplicates = Array
.from(
data
.reduce((m, o) => {
var key = ['type', 'position'].map(k => o[k]).join('|');
return m.set(key, (m.get(key) || []).concat(o));
}, new Map)
.values()
)
.filter(({ length }) => length > 1);

console.log(duplicates);

关于javascript - 对象的过滤器和唯一数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com