Computer >> Máy Tính >  >> Lập trình >> Javascript

Cách chuyển mảng thành mảng đối tượng bằng cách sử dụng map () và Reduce () trong JavaScript

Giả sử chúng ta có một mảng các mảng như thế này -

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

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng như vậy và trả về một mảng mới gồm các đối tượng được xây dựng dựa trên mảng đầu vào.

Vì vậy, đối với mảng trên, đầu ra sẽ giống như thế này -

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

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Đầu ra trong bảng điều khiển -

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