Девятая программа "Золотой мяч"

Почему работает код, указанный без фигурных скобок после условия цикла?

let player1={
name: ‘Футболист1’,
goals:1,
passes:4
};
let player2={
name: ‘Футболист2’,
goals:2,
passes:4
};
let player3={
name: ‘Футболист3’,
goals: 3,
passes:4
};

let players = [player1, player2, player3];

let getStatistics = function(players){
let sumGoals = 0;
for (let i=0; i<players.length; i++)
players[i].coefficient=players[i].goals2+players[i].passes;
for (let s=0; s<players.length; s++)
sumGoals+=players[s].goals;
for (let j=0; j<players.length; j++)
players[j].percent=Math.round((players[j].goals
100)/sumGoals);
return players;
};

getStatistics(players);

Это так называемый сокращённый синтаксис цикла.В циклах, подобно конструкциям if, for, фигурные скобки не обязательны. Если их опустить, то цикл выполнит только одну строку под ним. но лучше так не делать, потому что это чревато ошибками.

Я неправильно поставил вопрос: почему не работает со скобками?
Изначально код был именно с ними.

Пожалуйста, скопируйте ваш код и вставьте его в комментарий (не забудьте про знак </> , чтобы разметка правильно отобразилась), так будет проще разобраться.

Вот как я сделал :
let players = [];
let getStatistics = function (players) {
let sumGoals = 0;
for (let i = 0; i < players.length; i++) {
players[i].coefficient = players[i].goals2 + players[i].passes;
sumGoals += players[i].goals;
}
for (let j = 0; j < players.length; j++) {
players[j].percent = Math.round(players[j].goals
100/sumGoals);
}
return players;
};
getStatistics(players);

2 лайка
let firstPlayer = {
 name: 'Max',
 goals: 2,
 passes: 3
};

let secondPlayer = {
 name: 'Rax',
 goals: 3,
 passes: 2
};

let listPlayers = [firstPlayer, secondPlayer];

let getStatistics = function (listPlayers) {
 
// Сумма голов, всех игроков 
  let sumGoals = 0;
  for (let i = 0; i < listPlayers.length; i++) {
  sumGoals += listPlayers[i].goals;
  }

  // Добавляем и считаем coefficient и percent
 for (let currentPlayer = 0; currentPlayer < listPlayers.length ; currentPlayer++) {
listPlayers[currentPlayer].coefficient = listPlayers[currentPlayer].goals * 2 + listPlayers[currentPlayer].passes;
listPlayers[currentPlayer].percent = Math.round(100 * listPlayers[currentPlayer].goals / sumGoals);
}

 return listPlayers;
};

getStatistics(listPlayers);
let playerOne = {
  name: 'Футболист 1',
  goals: 0,
  passes: 0
}

let playerTwo = {
  name: 'Футболист 2',
  goals: 0,
  passes: 0
}

let players = [playerOne, playerTwo];

let sumOfGoals = 0;

let getStatistics = function (players) {

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

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

return players;
};

getStatistics(players);

вот так будет проще

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

2 лайка

let firstPlayer = {
name: ‘Глушаков’,
goals: 3,
passes: 5
};

let secondPlayer = {
name: ‘Комбаров’,
goals: 4,
passes: 2
};

let thirdPlayer = {
name: ‘Быстров’,
goals: 10,
passes: 3
};

let igroki = [firstPlayer, secondPlayer, thirdPlayer];

let getStatistics = function (players) {
sumGoals = 0;
for (let j = 0; j < players.length; j++) {
sumGoals += players[j].goals;
}

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

getStatistics(igroki);