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

Девятая программа: «Золотой мяч»

Кекс уважает футбол, но смотреть игры ему лень некогда. Но это не страшно, ведь коту достаточно знать имена лучших бомбардиров и их результативность, чтобы поставить на игрока поддержать беседу в нужный момент.

Пока вы писали игру, на почту пришло письмо от Кекса с пометкой «Надо было ещё вчера».

Мяу! Мне нужна программа, которая подсчитает полезность и результативность игроков на основе их статистики. Оформи код в виде функции getStatistics с одним параметром — массивом игроков.

Каждый футболист в этом массиве описывается объектом с тремя полями: имя (свойство name), забитые голы (свойство goals) и голевые пасы (свойство passes).

Функция должна возвращать этот же массив, в котором каждому игроку добавлены ещё два поля: коэффициент полезности по Кексу® (свойство coefficient) и результативность (свойство percent).

  • Коэффициент полезности считается так: умножаем голы игрока на 2 (потому что я считаю, что голы важнее всего) и прибавляем к этому значению все голевые пасы футболиста.
  • Результативность (процент забитых мячей футболиста от результата всей команды) считаем так: находим сумму голов всех игроков и выясняем, сколько процентов от этого числа забил каждый футболист. Округляй значение с помощью Math.round.

Подсказки:

Рассчитываем, какой процент составляет число:

// Общее значение, то есть 100%
1200
// Сколько процентов составляет 225 от 1200
(225 * 100) / 1200 = 18.75
// После округления с помощью Math.round
19

Когда будете готовы, жмите Заказчик, принимай программу! в консоли, Кекс вызовет функцию getStatistics и проверит вашу работу. Удачи!

Решение

Решение испытания будет доступно через несколько минут. Используйте его, если возникнут сложности. А пока попытайтесь пройти испытание самостоятельно.

var catPlayers = [
  {name: 'Васька', goals: 5, passes: 5},
  {name: 'Байт', goals: 12, passes: 2},
  {name: 'Снежок', goals: 2, passes: 7}
];

var getStatistics = function (players) {
  var totalGoals = 0;

  for (var i = 0; i < players.length; i++) {
    totalGoals += players[i].goals;
  }

  for (var k = 0; k < players.length; k++) {
    players[k].coefficient = players[k].goals * 2 + players[k].passes;
    players[k].percent = Math.round(players[k].goals * 100 / totalGoals);
  }

  return players;
};

getStatistics(catPlayers);
Минимальный вид табов
  • index.html
HTML
HTML

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

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

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

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

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