,可以通过以下几种方式实现:
const arr = [obj1, obj2, obj3, obj4, obj1, obj5, obj2];
const result = arr.filter((item, index) => arr.indexOf(item) !== index);
上述代码中,arr.filter()方法会遍历数组arr,并使用arr.indexOf()方法判断当前元素在数组中的索引是否与当前索引相同,如果不同则表示该元素是重复的,最终返回一个包含重复对象的新数组result。
const arr = [obj1, obj2, obj3, obj4, obj1, obj5, obj2];
const result = arr.filter((item, index, self) => self.findIndex(obj => obj.property === item.property) !== index);
上述代码中,arr.filter()方法会遍历数组arr,并使用self.findIndex()方法查找数组中第一个具有相同属性值的元素的索引,如果该索引与当前索引不同,则表示该元素是重复的,最终返回一个包含重复对象的新数组result。
const arr = [obj1, obj2, obj3, obj4, obj1, obj5, obj2];
const map = new Map();
const result = arr.filter(obj => !map.has(obj.property) && map.set(obj.property, obj));
上述代码中,通过创建一个空的Map对象map,遍历数组arr,并使用map.has()方法判断当前对象的某个属性是否已存在于map中,如果不存在则将该属性作为键,对象本身作为值存入map中,最终返回一个包含重复对象的新数组result。
以上是获取重复对象的数组而不是单个对象的数组的几种实现方式。根据具体的业务需求和数据结构,选择合适的方式来实现。
领取专属 10元无门槛券
手把手带您无忧上云