Я пытаюсь отсортировать объект, players
, по среднему количеству очков каждого игрока, а затем вернуть трех лучших игроков в массиве.
Я получаю sort is not a function
, что заставляет меня думать, что я не вызываю его с правильным типом данных (я пытаюсь отсортировать по числу, называемому «средним»).
Я пытался написать функцию несколькими способами, надеясь получить доступ к свойству average
player
в players
, но продолжаю получать sort is not a function
.
Ниже приведен мой код (исключая функции, которые уже работают):
class Player {
constructor(player_id, score) {
this.player_id = player_id;
this.scores = [score];
this.total = score;
this.average = this.averageScore();
}
averageScore() {
return this.scores.length ? this.total / this.scores.length : 0;
}
};
class LeaderBoard {
constructor() {
this.players = {};
}
top = (num_players) => {
var sorted = this.players.sort((a, b) => (a.average > b.average) ? 1 : -1)
return sorted.slice(0, num_players);
}
};
Я бы хотел, чтобы он возвращал массив индексов от 0 до num_players
после того, как они отсортированы по их средним, но вместо этого я получаю sort is not a function
- что я делаю не так?