[20/28] Золотой мяч


#21
Сводка
var getStatistics = function (players) {
for(var i=0; i<players.length; i++)
{
  players[i].coefficient=players[i].goals*2+players[i].passes;
  players[i].percent=Math.round(players[i].goals/players.reduce(function (acc, obj){ return acc + obj.goals;},0)*100);
  }
  return players;
};

#22

Да то же самое получилось. Но кажется это самое логичное решение, если использовать только то, чему обучали на курсах. Только я доп переменные люблю использовать)

var getStatistics = function (players) {
  var sumgoals = 0;
  for (var i = 0; i < players.length; i ++) {
sumgoals += players[i].goals;
var coefficient = players[i].goals * 2 + players[i].passes;
players[i].coefficient = coefficient;
}
  for (var i = 0; i < players.length; i ++) {
var percent = Math.round(players[i].goals * 100 / sumgoals);
players[i].percent = percent;
}
  return players;
};

#23

Подскажите пожалуйста, почему нужно использовать два цикла? Почему нельзя все засунуть в один цикл?


#26

Потому что с помощью первого цикла мы считаем количество голов, а с помощью второго цикла мы, используя результат первого (сумма голов всех игроков), находим % от забитых голов. И если расчёт коэффициента полезности, можно проводить в первом цикле, потому что этот расчёт не предполагает поиск каких-то дополнительных данных, то с результативностью так не получится.
Как можно одновременно считать сумму голов всех игроков и % от него мне не ясно в силу того, что если все строки кода из обоих циклов поместить в один цикл, то на каждой итерации мы будем к общему количеству голов добавлять голы игрока[i] и полученное числу сразу же делить на личные голы этого игрока. В таком случае, параметр результативности будет правильным только для последнего игрока, потому что потому что только на последней итерации мы получим сумму Всех голов команды, а до этого будем делить players[i].goals на сумму голов, которая не будет полной (к примеру, если игроков будет 6, то голы players[5] делим на сумму голов первых пяти игроков, но ведь есть еще шестой игрок, мячи которого мы еще к общему количеству не прибавляли).