在数组中获得重复最多的项 JavaScript
我们有一个包含一些值(其中一些也是重复的)的数字/字符串文字数组。我们的工作是编写一个函数,该函数返回数组中出现次数最多的元素。
例如 - 如果输入数组是 -
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
广告