I have an array of objects like so:
const content = [
{
title: 'Morning run',
id: 'id1',
desc: 'Meet at the park',
date: '2018-01-14T09:00:00.000Z',
location: 'Central park',
createdBy: '23432432',
},
{
title: 'Evening run',
id: 'id2',
desc: 'Meet by the station',
date: '2018-01-14T18:00:00.000Z',
location: 'Central station',
createdBy: '23432432',
},
];
How can I create an associative array like so?:
const output = {'id1' : 'Morning run', 'id2' : 'Evening run'}
Can this be done with a map function?
Advertisement
Answer
Since you need just one object in the result, you could use array#reduce like this:
const content = [{
title: 'Morning run',
id: 'id1',
desc: 'Meet at the park',
date: '2018-01-14T09:00:00.000Z',
location: 'Central park',
createdBy: '23432432',
},
{
title: 'Evening run',
id: 'id2',
desc: 'Meet by the station',
date: '2018-01-14T18:00:00.000Z',
location: 'Central station',
createdBy: '23432432',
},
];
var result = content.reduce(function(accum, currentVal) {
accum[currentVal.id] = currentVal.title;
return accum;
}, {});
console.log(result);