У меня есть массив объектов
data: [
{
eventId: "EVEN00001",
eventType: "call",
startDate: "2018-08-01T21:30:17+05:30",
},
{
eventId: "EVEN00002",
eventType: "call",
startDate: "2018-08-01T21:30:17+05:30",
},
{
eventId: "EVEN00003",
eventType: "meeting",
startDate: "2017-02-03T21:30:17+05:30",
},
{
eventId: "EVEN00004",
eventType: "email",
startDate: "2018-09-04T21:30:17+05:30",
},
{
eventId: "EVEN00005",
eventType: "meeting",
startDate: "2018-09-05T21:30:17+05:30",
}]
Я хочу уменьшить его до
[{call: 2},{meeting: 2},{email: 1}]
Как я могу добиться этого с помощью метода сокращения JavaScript, каким-то образом я могу достичьжелаемый результат, но это не правильный подход.
data.reduce((acc, item, i, arr) => {
if (!acc[item.startDate]) {
acc[item.startDate] = 1;
} else {
acc[item.startDate] += 1;
}
return acc;
}, {});
const dayArray = Object.entries(trimedData)
.reduce((acc, node, i, arr) => {
let [days, val] = node;
acc.push({
days: days,
value: val
})
return acc;
}, []);
как я могу достичь желаемого результата, используя только поменьше. Или любой другой лучший подход?