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