Недавно я отсортировал массив объектов по датам в порядке возрастания, не включая пустые строки / undefined. У меня возникли проблемы при создании фильтра, который будет фильтровать этот массив от определенного c года к другому.
Например: у меня есть массив с именем:
var activities = [
{ "title": 'Hiking', "date": '06/28/2012' },
{ "title": 'Shopping', "date": '01/18/2013' },
{ "title": 'Trekking', "date": '02/21/2013' },
{ "title": 'Sleeping', "date": '11/28/2013' },
{ "title": 'Driving', "date": ' ' },
{ "title": 'Running', "date": ' ' },
{ "title": 'Eating', "date": '12/31/2013' },
{ "title": 'Cooking', "date": '11/28/2014' },
{ "title": 'Excersise', "date": '02/21/2014' },
{ "title": 'Sking', "date": '04/04/2014' },
{ "title": 'Travelling', "date": '08/28/2018' }
]
Я хочу отфильтровать даты по годам 2012-2013. Таким образом, результат будет:
{ "title": 'Hiking', "date": '06/28/2012' }
{ "title": 'Shopping', "date": '01/18/2013' }
{ "title": 'Trekking', "date": '02/21/2013' }
{ "title": 'Sleeping', "date": '11/28/2013' }
{ "title": 'Eating', "date": '12/31/2013' }
Я сделал попытку, но я застрял на том, что делать.
var activities = [
{ "title": 'Hiking', "date": '06/28/2012' },
{ "title": 'Shopping', "date": '01/18/2013' },
{ "title": 'Trekking', "date": '02/21/2013' },
{ "title": 'Sleeping', "date": '11/28/2013' },
{ "title": 'Driving', "date": ' ' },
{ "title": 'Running', "date": ' ' },
{ "title": 'Eating', "date": '12/31/2013' },
{ "title": 'Cooking', "date": '11/28/2014' },
{ "title": 'Excersise', "date": '02/21/2014' },
{ "title": 'Sking', "date": '04/04/2014' },
{ "title": 'Travelling', "date": '08/28/2018' }
]
var activitiesData= activities
.filter(d => d.date&& d.date!== ' ')
.map(({ title, date }) => ({title, date}))
.sort((a, b) => new Date(a.date) - new Date(b.date));
console.log(activitiesData)