I have an array of javascript objects like:
const arrayData = [
{ name: "campaign 1", date: "2022-05-13", milestones:[{name:"Planning", targetDate: "2022-05-25"},
{name:"Funding", targetDate: "2022-05-30"},
{name:"Delievery", targetDate: "2022-05-31"}]
},
{ name: "campaign 2", date: "2022-06-19", milestones:[{name:"Planning", targetDate: "2022-08-12"},
{name:"Funding", targetDate: "2022-09-01"},
{name:"Delievery", targetDate: "2022-06-08"}]
},
{ name: "campaign 3", date: "2022-07-11", milestones:[{name:"Planning", targetDate: "2022-06-13"},
{name:"Funding", targetDate: "2022-07-10"},
{name:"Delievery", targetDate: "2022-08-01"}]
},
];
I want to convert it into this form:
const arrayData = [
{ name: "campaign 1", date: "2022-05-13", Planning:"2022-05-25", Funding: "2022-05-30", Delievery: "2022-05-31"},
{ name: "campaign 2", date: "2022-06-19", Planning: "2022-08-12", Funding: "2022-09-01", Delievery: "2022-06-08"},
{ name: "campaign 3", date: "2022-07-11", Planning: "2022-06-13", Funding: "2022-07-10", Delievery: "2022-08-01"}
];
I tried to do it this way:
let newData = [];
for (let i in arrayData) {
newData.push({
campaignName: arrayData[i].campaignName,
date: arrayData[i].date,
arrayData[i].milestones.map(item, index)=>(
[arrayData[i].milestones[j].name]:
arrayData[i].milestones[j].targetedDate,
)
});
}
But, it didn't work for me. Kindly provide the solutions of it. Thanks
const newArr = arrayData.map(({name, date, milestones}) => ({ name, date, ...milestones.reduce((o, {name, targetDate}) => { o[name] = targetDate; return o; }, {}) }));