在陣列中獲得重複最多的項 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP