Convert Array to Array of Objects Using Map and Reduce in JavaScript



Suppose we have an array of arrays like this −

const arr = [    [       ['juice', 'apple'], ['maker', 'motts'], ['price', 12]    ],    [       ['juice', 'orange'], ['maker', 'sunkist'], ['price', 11]    ] ];

We are required to write a JavaScript function that takes in one such array and returns a new array of objects built based on the input array.

So, for the above array, the output should look like this −

const output = [    {juice: 'apple', maker: 'motts', price: 12},    {juice: 'orange', maker: 'sunkist', price: 11} ];

Example

The code for this will be −

const arr = [    [       ['juice', 'apple'], ['maker', 'motts'], ['price', 12]    ],    [       ['juice', 'orange'], ['maker', 'sunkist'], ['price', 11]    ] ]; const arrayToObject = arr => {    let res = [];    res = arr.map(list => {       return list.reduce((acc, val) => {          acc[val[0]] = val[1];          return acc;       }, {});    });    return res; }; console.log(arrayToObject(arr));

Output

The output in the console −

[    { juice: 'apple', maker: 'motts', price: 12 },    { juice: 'orange', maker: 'sunkist', price: 11 } ][    { juice: 'apple', maker: 'motts', price: 12 },    { juice: 'orange', maker: 'sunkist', price: 11 } ]
Updated on: 2020-10-10T07:54:46+05:30

883 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements
close