Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

แยกอาร์เรย์ออกจากอาร์เรย์ของ Objects ใน JavaScript


สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -

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

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าวและแยกอาร์เรย์แยกต่างหากสำหรับแต่ละคุณสมบัติของอ็อบเจ็กต์

ดังนั้น หนึ่งอาร์เรย์สำหรับคุณสมบัติชื่อของแต่ละอ็อบเจ็กต์ หนึ่งอาร์เรย์สำหรับผลรวมและอีกหนึ่งรายการสำหรับค่า หากมีคุณสมบัติมากกว่านี้ เราก็จะได้แยกอาร์เรย์เพิ่มเติม

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

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