获取对象数组中重复数据
时间: 2024-04-14 11:25:55 浏览: 110
你可以使用循环遍历对象数组,并使用一个哈希表来记录每个元素的出现次数。如果某个元素在哈希表中的次数超过1,那么它就是重复的数据。
以下是一个示例代码,展示了如何在JavaScript中获取对象数组中的重复数据:
```javascript
function findDuplicates(arr) {
var hashTable = {};
var duplicates = [];
for (var i = 0; i < arr.length; i++) {
if (hashTable[arr[i]]) {
hashTable[arr[i]]++;
} else {
hashTable[arr[i]] = 1;
}
}
for (var key in hashTable) {
if (hashTable[key] > 1) {
duplicates.push(key);
}
}
return duplicates;
}
// 示例用法
var objArr = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'John' }, { id: 4, name: 'Jane' }];
var duplicateValues = findDuplicates(objArr);
console.log(duplicateValues); // 输出: ['John', 'Jane']
```
在这个示例中,我们使用一个哈希表 `hashTable` 来记录每个元素出现的次数。然后,我们遍历哈希表,找到出现次数大于1的元素,并将它们添加到 `duplicates` 数组中。最后,返回 `duplicates` 数组,即为重复的数据。
请注意,这个示例中的重复数据判断是基于对象的属性值是否相同。如果你的需求是基于对象的引用是否相同来判断重复数据,你需要稍作修改。
阅读全文