Задача №8

Дано масив показів температур. Підрахувати кількість входжень кожного із показів.

const temperatures = [12.4, 24.9, 10.6, 12.4, 24.9, 12.4, 10.6, 11.9]

Заокруглити вверх значення та підрахувати кількість різних показів.


Рішення:

'use strict'

/**
 * @param {number[]} tempList
 * @return {Map<number, number>}
 */
function getEntries(tempList) {
  //? тут нема потреби у Map, можна використати звичайний об'єкт
  //? але оскільки урок про Map та Set – використаю Map
  const entries = new Map()

  for (const temp of tempList) {
    entries.set(temp, (entries.get(temp) ?? 0) + 1)
  }

  return entries
}

/** @param {number[]} tempList */
function getCeiledEntriesSize(tempList) {
  return new Set(tempList.map(Math.ceil)).size
}

// =============================================================================

const temperatures = [12.4, 24.9, 10.6, 12.4, 24.9, 12.4, 10.6, 11.9]

const tempEntries = getEntries(temperatures)

console.group('Входження кожної температури')
for (const [temp, amount] of tempEntries) {
  console.log(temp, '-', amount)
}
console.groupEnd()

console.log('Кількість різних показів:', getCeiledEntriesSize(temperatures))