Задача:

Написать функцию, которая вернет количество элементов, которые повторяются наибольшее число раз

Решение:

(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));
}

results matching ""

    No results matching ""