const beers = [
{
id: '100',
name: 'stoneys'
},
{
id: '200',
name: 'budweiser'
},
{
id: '300',
name: 'miller'
},
{
id: '400',
name: 'corona'
}
];
const people = [
{
name: 'steve',
teams: [
{
name: 'pirates',
beers: ['100']
},
{
name: 'penguins',
beers: ['300']
}
]
},
{
name: 'jim',
teams: [
{
name: 'indians',
beers: ['200']
},
{
name: 'blue jackets',
beers: ['100', '400']
}
]
}
];
let newPeople = people.map(fan => {
fan.teams.map(team => {
team.beers.map(beer => beers.filter(brand => brand.id === beer)[0])
});
});
Выше приведен пример, который я собрал, чтобы лучше всего продемонстрировать свой вопрос. У меня возникают проблемы с пониманием того, почему вложенное отображение (.map ()) массивов объектов не позволяет мне изменять вложенные данные. Когда я поддерживаю результаты журнала, я получаю либо «[undefined, undefined]», либо неизмененный массив «people».
Я хотел бы вернуть тот же массив, что и «people», за исключением замены вложенных «beers» "array (people.teams.beers []) с соответствующими объектами из массива" beers ". Пример успешного результата ниже:
{
name: 'steve',
teams: [
{
name: 'pirates',
beers: [
{
id: '100',
name: 'stoneys'
}
]
},
{
name: 'penguins',
beers: [
{
id: '300',
name: 'miller'
}
]
}
]
}