选出数组对象中重复最多的字段id
时间: 2024-03-27 20:40:49 浏览: 22
假设数组对象中的每个元素都是对象,其中包含一个字段 `id`,则可以在上一个问题的基础上稍作修改,将记录出现次数最多的元素改为记录出现次数最多的 `id`,最后返回最多出现的 `id` 即可。以下是 JavaScript 的示例代码:
```javascript
function findMostFrequentId(arr) {
const map = new Map();
let maxCount = 0;
let mostFrequentId = null;
for (const elem of arr) {
const id = elem.id;
const count = (map.get(id) || 0) + 1;
map.set(id, count);
if (count > maxCount) {
maxCount = count;
mostFrequentId = id;
}
}
return mostFrequentId;
}
const arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
{ id: 1, name: 'David' },
{ id: 2, name: 'Eve' },
{ id: 2, name: 'Frank' },
{ id: 3, name: 'Grace' },
{ id: 3, name: 'Hank' },
{ id: 3, name: 'Ivy' },
{ id: 3, name: 'Jack' },
];
const mostFrequentId = findMostFrequentId(arr);
console.log(mostFrequentId); // 输出 3
```
这里假设每个数组元素都包含一个字段 `id`,遍历数组时,使用 `Map` 记录每个 `id` 出现的次数。如果某个 `id` 在 `Map` 中已经存在,则将其出现次数加 1;否则,将其出现次数设为 1。同时,记录出现次数最多的 `id` 及其出现次数,最后返回出现次数最多的 `id` 即可。