Giả sử chúng ta có mảng đối tượng như sau:
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 ta cần viết hàm JavaScript nhận vào mảng này và trích xuất mảng riêng biệt cho mỗi thuộc tính của đối tượng.
Do đó, một mảng cho thuộc tính name của mỗi đối tượng, một cho total và một cho value. Nếu có thêm thuộc tính, sẽ tách thêm mảng tương ứng.
Ví dụ
Mã thực hiện:
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));Kết quả
Kết quả in ra console:
{
name: [ 'Client 1', 'Client 2', 'Client 3' ],
total: [ 900, 10, 5 ],
value: [ 12000, 800, 0 ]
}