Почему логирование console.log () не определено, когда моя функция возвращает правильный ответ? - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь создать базовый трекер c, используя JavaScript:

function Player(name) {
    this.name = name;
    this.scores = [];
}

function addPlayer(name) {
    playersList.push(new Player(name));
    return playersList;
}

function addScore(name, score) {
    playersList.forEach(player => {
        if (player.name == name) {
            player.scores.push(score);
        };
    });
}

function getTotal(name) {
    playersList.forEach(player => {
        if (player.name == name) {
            let sum = 0;
            player.scores.forEach(score => sum += score);
            console.log(sum);
        } 
    });
}

var playersList = [];
addPlayer("Player1");
addScore("Player1", 3);
addScore("Player1", 4);
console.log(getTotal("Player1"));

Результат, который я ожидаю:

7
7

, но вместо этого я получаю:

7
undefined

Может ли кто-нибудь мне помочь, почему мой console.log() не записывает число, возвращенное функцией?

1 Ответ

0 голосов
/ 17 апреля 2020

Попробуйте это

function getTotal(name) {
  let sum = 0;
  playersList.forEach(player => {
    if (player.name == name) {        
        player.scores.forEach(score => sum += score);
        console.log(sum);
    } 
  });
  return sum
}
...