Fiz o desafio utilizando duas maneiras de encontrar os dados, um com o forEach e o outro usando o for...in, pois não encontrei muitos usando. Antes eu estava errando, pois estava usando o método push e empurrando um array inteiro [...personagem[data].amigos]
dentro do outro array, depois que me dei conta que o espalhamento era através dos ... visto que eu já tinha criado um array antes através da variável.
const personagem = [
{
nome: "Bilbo Bolseiro",
raça: "Hafling",
classe: "Rogue",
level: 12,
amigos: [
{
nome: "Gandalf, O Cinzento",
raça: "Desconhecida",
classe: "Mago",
level: 20
},
{
nome: "Thorin Escudo de Carvalho",
raça: "Anão",
classe: "Fighter",
level: 14
}
]
},
{
nome: "Frodo Bolseiro",
raça: "Hafling",
classe: "Bardo",
level: 8,
amigos: [
{
nome: "Legolas Folha Verde",
raça: "Elfo",
classe: "Ranger",
level: 10
},
{
nome: "Gimli, Filho de Glóin",
raça: "Anão",
classe: "Fighter",
level: 10
},
{
nome: "Aragorn Elessar",
raça: "Humano Variante",
classe: "Fighter 10 / Ranger 4",
level: 14
}
]
}
]
let amigosFormidaveis1 = [];
const encontrarAmigos = personagem.forEach(data => {
amigosFormidaveis1.push(...data.amigos)
})
let amigosFormidaveis2 = [];
for (let data in personagem) {
amigosFormidaveis2.push(...personagem[data].amigos);
}
console.table(amigosFormidaveis1);
console.table(amigosFormidaveis2);