获取数组中重复次数最多的项 JavaScript
javascriptweb developmentobject oriented programming更新于 2025/10/22 1:16:17
我们有一个包含一些值(有些也是重复的)的数字/字符串文字数组。我们的工作是编写一个函数,返回数组中出现次数最多的元素。
例如 −如果输入数组是 −
const input = ['a', 'v', 'k', 'f', 'a', 'f', 's', 'd', 'd', 'f', 'a', 'j', 'a'];
那么输出应该是 −
'a'
因为 'a'重复的最大次数
因此,让我们为此编写代码。我们将使用 Map() 来跟踪我们遇到的所有元素及其计数,最后返回计数最大的元素,如下所示 −
示例
const input = ['m', 'a', 'v', 'k', 'f', 'a', 'f', 's', 'd', 'd', 'f', 'a',
'j', 'a'];
const findMaximum = arr => {
const map = arr.reduce((acc, val) => {
let count = acc.get(val);
if(count){
acc.set(val, ++count);
} else {
acc.set(val, 1);
};
return acc;
}, new Map());
return Array.from(map).reduce((acc, val) => {
if(val[1] > acc[1]){
return val;
};
return acc;
}, [0, 0])[0];
};
console.log(findMaximum(input));
输出
控制台中的输出将是 −
a
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/
打印
下一节:在 JavaScript 中比较两个对象并返回一个介于 0 和 100 之间的数字,表示相似度百分比 ❯❮ 上一节:数组求和:比较 JavaScript 中的递归、for 循环和 ES6 方法

