Giả sử chúng ta có hai mảng mô tả dòng tiền như sau:
const months = ["jan", "feb", "mar", "apr"];
const cashflows = [
{'month':'jan', 'value':10},
{'month':'mar', 'value':20}
];
Cần viết hàm nhận hai mảng như vậy. Hàm sẽ xây dựng mảng đối tượng kết hợp chứa đối tượng cho mỗi tháng và giá trị dòng tiền của tháng đó.
Với mảng trên, đầu ra sẽ trông như:
const output = [
{'month':'jan', 'value':10},
{'month':'feb', 'value':''},
{'month':'mar', 'value':20},
{'month':'apr', 'value':''}
];
Ví dụ
Mã thực hiện như sau:
const months = ["jan", "feb", "mar", "apr"];
const cashflows = [
{'month':'jan', 'value':10},
{'month':'mar', 'value':20}
];
const combineArrays = (months = [], cashflows = []) => {
let res = [];
res = months.map(function(month) {
return this[month] || { month: month, value: '' };
}, cashflows.reduce((acc, val) => {
acc[val.month] = val;
return acc;
}, Object.create(null)));
return res;
};
console.log(combineArrays(months, cashflows));
Kết quả
Kết quả trong console sẽ là:
[
{ month: 'jan', value: 10 },
{ month: 'feb', value: '' },
{ month: 'mar', value: 20 },
{ month: 'apr', value: '' }
]