How to convert array as below to object like output below?
const list = [
{ id: 1, data: { name: 'John', age: 25 } },
{ id: 2, data: { name: 'Jane', age: 22 } },
{ id: 3, data: { name: 'Tom', age: 20 } }
]
output:
{
1: { id: 1, name: 'John', age: 25 },
2: { id: 2, name: 'Jane', age: 22 },
3: { id: 3, name: 'Tom', age: 20 }
}
You can use array reduce method. Inside the callback method add the key in the accumulator object represented by acc in the below code
const list = [{
id: 1,
data: {
name: 'John',
age: 25
}
},
{
id: 2,
data: {
name: 'Jane',
age: 22
}
},
{
id: 3,
data: {
name: 'Tom',
age: 20
}
}
]
const newData = list.reduce((acc, curr) => {
acc[curr.id] = { ...curr.data,
id: curr.id
}
return acc;
}, {});
console.log(newData)