В вашем else
вы должны иметь:
const newPlayer = {name: solver, points: 1};
т.е. объект, а не массив. Итак, у вас есть массив players
, который всегда будет иметь player
объектов
Теперь, поскольку у вас есть массив объектов, вам нужно использовать что-то вроде some , чтобы узнать, объект, соответствующий вашему условию, существует или нет:
Условие if
можно заменить на:
if (players.some(player => player.name === solver))
Я только что видел, что вы хотите увеличить очки найденного игрока на 1
. В этом случае вы должны использовать find вместо some
, чтобы вы могли получить доступ к найденному игроку и обновить его свойство points
. Так что сделайте это:
const player = players.find(player => player.name === solver);
if (player) {
player.points++;
} else {
const newPlayer = {name: solver, points: 1};
players.push(newPlayer)
}