То, что вы пытаетесь создать, - это создать новый массив на основе другого.
Для этой специальной цели функция map
является наиболее адаптированной (map
является двоюродным братом forEach
).
Для каждой записи массива userRelations
мы создадим новую запись в новом массиве.
const data = {
users: {
nodes: [{
userRelations: [{
relatedUser: {
firstName: 'Johann',
},
}, {
relatedUser: {
firstName: 'Lars',
},
}, {
relatedUser: {
firstName: 'Paul',
},
}],
}],
},
};
const myFormattedData = data.users.nodes[0].userRelations.map(x => ({
id: 'myId',
imageUrl: 'myUrl',
name: x.relatedUser.firstName,
}));
console.log(myFormattedData);
Альтернативный синтаксис:
const data = {
users: {
nodes: [{
userRelations: [{
relatedUser: {
firstName: 'Johann',
},
}, {
relatedUser: {
firstName: 'Lars',
},
}, {
relatedUser: {
firstName: 'Paul',
},
}],
}],
},
};
const id = 'myId';
const imageUrl = 'myUrl';
const myFormattedData = data.users.nodes[0].userRelations.map(({
relatedUser: {
firstName: name,
},
}) => ({
id,
imageUrl,
name,
}));
console.log(myFormattedData);