Оператор if
в конце должен основываться на total
, а не points_winner
.Если total
равно, по крайней мере, 0
, команда квалифицирована.
Если сумма меньше 0, конвертируйте ее в положительное число, когда показывает сумму, на которую она сократилась.
При показе разницы мячей в конце необходимо использовать total
.goalDifference
содержит только разницу от последнего совпадения.
Условие while
должно быть matches < matches_played
.Если вы используете <=
, он зацикливается на дополнительном времени и получает undefined
для тех недостающих элементов массива, что заставляет вас получить NaN
, когда вы добавляете их в total
.
function solve(input) {
let name = input.shift();
let matches_played = Number(input.shift());
let matches = 0;
let points_winner = 0;
let goalDifference = 0;
let total = 0;
while (matches < matches_played) {
let first_team = Number(input.shift());
let second_team = Number(input.shift());
if (first_team > second_team) {
points_winner = points_winner + 3;
} else if (first_team === second_team) {
points_winner = points_winner + 1;
} else if (first_team < second_team) {
points_winner = points_winner + 0;
}
goalDifference = first_team - second_team;
total = total + goalDifference;
matches++;
}
if (total >= 0) {
console.log(`${name} has finished the group phase with ${points_winner} points.`)
console.log(`Goal difference: ${total}`)
} else {
console.log(`${name} has been eliminated from the group phase.`)
console.log(`Goal difference: ${-total}`)
}
}
solve(['Brazil', 3, 4, 2, 0, 0, 1, 1])
solve(['Spain', 3, 2, 4, 1, 2, 3, 3])