Да то же самое получилось. Но кажется это самое логичное решение, если использовать только то, чему обучали на курсах. Только я доп переменные люблю использовать)
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;
};
Потому что с помощью первого цикла мы считаем количество голов, а с помощью второго цикла мы, используя результат первого (сумма голов всех игроков), находим % от забитых голов. И если расчёт коэффициента полезности, можно проводить в первом цикле, потому что этот расчёт не предполагает поиск каких-то дополнительных данных, то с результативностью так не получится.
Как можно одновременно считать сумму голов всех игроков и % от него мне не ясно в силу того, что если все строки кода из обоих циклов поместить в один цикл, то на каждой итерации мы будем к общему количеству голов добавлять голы игрока[i] и полученное числу сразу же делить на личные голы этого игрока. В таком случае, параметр результативности будет правильным только для последнего игрока, потому что потому что только на последней итерации мы получим сумму Всех голов команды, а до этого будем делить players[i].goals на сумму голов, которая не будет полной (к примеру, если игроков будет 6, то голы players[5] делим на сумму голов первых пяти игроков, но ведь есть еще шестой игрок, мячи которого мы еще к общему количеству не прибавляли).
Рабочий код, проходит проверку.
let getStatistics = function (players) {
let totalGoals = 0;
for(let i = 0; i < players.length; i++){
totalGoals += players[i].goals;
};
for(let i = 0; i < players.length; i++){
players[i].coefficient = players[i].goals2 +players[i].passes;
players[i].percent = Math.round(players[i].goals/totalGoals100);
}
return players;
};
Здравствуйте, помогите разобраться плиз. Объясните откуда вы взяли players.passes и players.goals если они нигде ранее в коде не введены? При том код рабочий, но не пойму откуда код понимает что выполнять если ему не сказали до этого про goals и passes
// найдем сумму голов всеx игроков
let sumGoals = 0;
for (let j = 0; j < footbals.length; j++) {
sumGoals += footbals[j].goals;
}
//найдем сумму всех пасов
let sumPasses = 0;
for (let k =0; k < footbals.length; k++) {
sumPasses += footbals[k].passes;
}
let getStatistics = function (players) {
// добавим новые свойства в объект
for(let i = 0; i < players.length; i++) {
players[i].coefficient = players[i].goals * 2 + sumPasses;
players[i]. percent = Math.round((players[i].goals / sumGoals) *100) ;
// возвратим наш обект с новыми свойствами
return players[i];
}
}