Object.keys()
даст вам массив ключей, а не объект, хранящийся под этими ключами (т.е. Object.keys(players)
возвращает ['1', '2', ...]
).
Если вы хотите получить объекты, вы можете отобразить массив результатов следующим образом:
// Use map to turn the array of keys into the array of objects
const currentPlayer = Object.keys(players).map(id => players[id])
// be careful: filter returns an array, but you probably just want the one object
.filter(obj => obj.id === playerNumber)[0]
В зависимости от того, на что вы нацеливаетесь, вы также можете иметь доступ к Object.values()
, который делает то же самое (то есть вы бы заменили первую строку просто на Object.values(players)
), просто имейте в виду, что поддержка браузера чуть более ограничен .