• Теория
  • Теория

Завершаем рефакторинг

На первом шаге рефакторинга мы избавлялись от отдельных переменных и намеренно отключили расчёт среднего значения, записав ноль в переменную averageUsers. Пришло время «починить» этот механизм, но уже с использованием массива.

Вспоминаем, что среднее — это сумма всех элементов, делённая на их количество. Сумму в цикле мы уже посчитали, а количество элементов можем получить, используя [].length.

Рефакторинг завершён, а вот и вишенка на торте! Теперь программа стала намного гибче и позволяет легко анализировать любые объёмы данных (за неделю, месяц, да хоть за год). Для этого нужно просто менять значения внутри массива usersByDay.

Выполните, наконец, задачу Кекса. Проанализируйте посещаемость за последний месяц. Для этого нужно скопировать эти данные внутрь массива:

817, 1370, 752, 1247, 681, 1120, 915, 1281, 875, 1341, 757, 610, 812, 1170, 769, 1261, 845, 1289, 515, 1247, 845, 1311, 741, 1239, 812, 638, 877, 1242, 1159, 1372

Теперь программа универсальна и работает с массивами любой длины. Но есть один нюанс. Если запустить программу на пустом массиве, то средняя посещаемость получится NaN (расшифровывается как not a number, то есть не число). Оно и понятно, ведь в формуле подсчёта среднего и делителем, и делимым будет ноль, а 0 / 0 даёт неопределённый результат, то есть NaN. Если задуматься, это логично: мы не можем знать среднее значение несуществующих значений, поэтому можно считать, что наш алгоритм работает как нужно.

Минимальный вид табов
  • index.html
HTML
HTML

Вы перешли на другую страницу

Кликните внутри мини-браузера, чтобы поставить фокус в это окно.

100%
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Массивы» тренажёра «Базовые структуры данных» можно после регистрации и оформления подписки.