users 内のすべてのユーザー オブジェクトに対して、ユーザーの特定のプロパティがマップされ、互いに離れた新しいオブジェクトとして player 配列にプッシュされる .forEach() を作成しようとしています。
しかし、私の試みでは、ユーザーのすべての結果が 1 つのオブジェクトにスタックされます。各 .push() がユーザーごとに新しいオブジェクトを作成することを確認するにはどうすればよいですか
私が欲しいもの
[
{
name: 'Johnny',
id: '123456789',
lives: 3
},
{
name: 'Timmy',
id: '987654321',
lives: 3
},
]
得られるもの
[
{
name: [ 'Johnny', 'Timmy' ],
id: [ '123456789', '987654321' ],
lives: 3
}
]
コード
let players = []
const users = {...}
users.forEach(user => {
let username = user.map(user => user.username)
let id = user.map(user => user.id)
players.push({ name: username, id: id, lives: 3 })
})
console.log(players)
1
.map() は新しい配列を返します。
– ダイダロス
2020 年 9 月 5 日 1:07
------------------------
これは、単純なマップ呼び出しで実現できます。もっと次のようなものが必要だと思います:
const users = [
{ username: 'alice', id: 123 },
{ username: 'bob', id: 456 },
]
const players = users.map(user => ({
name: user.username,
id: user.id,
lives: 3
}))
console.log(players);