Skip to content
Advertisement

Javascript map to Associative Array?

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);
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement