мне нужно сгруппировать коллекцию объектов по дате:Группировка элементов в машинопись с lodash
var meetings =
[
{date:"2001-01-01 13:00", place:"park"},
{date:"2001-01-01 14:00", place:"school"},
{date:"2001-01-02 11:00", place:"house"}
];
поэтому становится:
var groupedMeetings =
[
{
day:"2001-01-01",
meetings:
[
{date:"2001-01-01 13:00", place:"park"},
{date:"2001-01-01 14:00", place:"school"}
]
},
{
day:"2001-01-02",
meetings:
[
{date:"2001-01-02 11:00", place:"house"}
]
}
]
Я был в состоянии группировать их с _.groupBy и _ .map
var g = _.groupBy(meetings, function(i){return getDatePart(i.date);});
var groupedMeetings = _.map(g, function(items,key){return {day:key, meetings:items};});
Но у меня есть проблемы с делать то же самое в машинопись с https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/lodash/lodash.d.ts
Во-первых, я объявил мои занятия:
class Meeting
{
date: Date,
place: Meeting[]
}
class GroupedMeeting
{
constructor(private day: Date, private meetings: Meeting[]) {}
}
Теперь я не знаю, какой перегрузка GroupBy использовать? И как сопоставить его со списком сгруппированных предметов?
var grouped: _.Dictionary<Meeting[]> = _.groupBy(meetings, (i: Meeting) => { return this.getDatePart(i.date); });
var groupedMeetings : GroupedMeeting[] = _.map(grouped, (items: Meeting[], key: Date) => { return new GroupedMeeting (key, items); });
Я получил это работает в JS, мой вопрос заключается в написании его в машинописном – jlp