Cho object dữ liệu người dùng dạng { "Mary": {"2016-1":2, "2016-5":1}, "Paul": {...} }. Gom nhóm theo ngày (key ngày) thành object mới: mỗi ngày chứa mảng names và mảng values tương ứng.
Ví dụ
const obj = {
"Mary": {"2016-1":2, "2016-5":1, "2016-3":1},
"Paul": {"2016-1":1, "2016-3":1},
"moth": {"2016-1":2, "2016-5":1}
};
const groupByDate = (obj = {}) => {
const names = Object.keys(obj);
const res = {};
for (let i = 0; i < names.length; i++) {
const name = names[i];
const dates = Object.keys(obj[name]);
for (let j = 0; j < dates.length; j++) {
const date = dates[j];
if (!res.hasOwnProperty(date)) {
res[date] = { names: [name], values: [obj[name][date]] };
} else {
res[date].names.push(name);
res[date].values.push(obj[name][date]);
}
}
}
return res;
};
console.log(groupByDate(obj));
Kết quả
{
'2016-1': { names: ['Mary','Paul','moth'], values: [2,1,2] },
'2016-5': { names: ['Mary','moth'], values: [1,1] },
'2016-3': { names: ['Mary','Paul'], values: [1,1] }
}