สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -
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 ] }