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

Trích xuất mảng riêng biệt với mảng Đối tượng trong JavaScript

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

const arr = [{
   name : 'Client 1',
   total: 900,
   value: 12000
}, {
   name : 'Client 2',
   total: 10,
   value: 800
}, {
   name : 'Client 3',
   total: 5,
   value : 0
}];

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng như vậy và trích xuất một mảng riêng biệt cho từng thuộc tính đối tượng.

Do đó, một mảng cho thuộc tính tên của mỗi đối tượng, một cho tổng và một cho giá trị. Nếu tồn tại nhiều thuộc tính hơn, chúng tôi sẽ tách nhiều mảng hơn.

Ví dụ

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

const arr = [{
   name : 'Client 1',
   total: 900,
   value: 12000
}, {
   name : 'Client 2',
   total: 10,
   value: 800
}, {
   name : 'Client 3',
   total: 5,
   value : 0
}];
const separateOut = arr => {
   if(!arr.length){
      return [];
   };
   const res = {};
   const keys = Object.keys(arr[0]);
   keys.forEach(key => {
      arr.forEach(el => {
         if(res.hasOwnProperty(key)){
            res[key].push(el[key])
         }else{
            res[key] = [el[key]];
         };
      });
   });
   return res;
};
console.log(separateOut(arr));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

{
   name: [ 'Client 1', 'Client 2', 'Client 3' ],
   total: [ 900, 10, 5 ],
   value: [ 12000, 800, 0 ]
}