Задача:
Написать функцию, которая вернет количество элементов, которые повторяются наибольшее число раз
Решение:
(1) Вариант:
function mostFrequentItemCount(collection) {
let obj = {};
let sum = 0;
collection.sort().forEach(item => {
return obj[item] = ( obj[item] || 0 ) + 1;
});
for (let key in obj) {
if ( obj[key] > sum ) sum = obj[key];
}
return sum;
}
(2) Вариант:
function mostFrequentItemCount(collection) {
if (collection.length === 0) return 0;
var count = Object.create(null);
collection.forEach( item => {
count[item] = (count[item] || 0) + 1;
});
return Math.max(...Object.values(count));
}