如果日期匹配,则将项推送到数组中 - 脚本/类型脚本

做空数组以显示它们相对于日期,就像我所做的那样 - 徒步旅行,在2020-05-10购物和徒步旅行,在2020-05-10上足球和其他日期类似。


 const items = [

 {title: 'Hiking', date: new Date('2020-05-10')},

 {title: 'Shopping', date: new Date('2020-05-10')},

 //

 {title: 'Hiking', date: new Date('2020-05-22')},

 {title: 'Football', date: new Date('2019-05-22')},

 //

 {title: 'Football', date: new Date('2020-05-28')},

 {title: 'Hiking', date: new Date('2020-05-28')},

 {title: 'Cricket', date: new Date('2020-05-28')},

];


哆啦的时光机
浏览 58回答 2
2回答

慕斯709654

您需要使用 。reduce()var items = [ {title: 'Hiking', date: new Date('2020-05-10')}, {title: 'Shopping', date: new Date('2020-05-10')},{title: 'Hiking', date: new Date('2020-05-22')}, {title: 'Football', date: new Date('2020-05-22')}, {title: 'Football', date: new Date('2020-05-28')}, {title: 'Hiking', date: new Date('2020-05-28')}, {title: 'Cricket', date: new Date('2020-05-28')}];var result = items.reduce((acc, {title, date})=>{    dateKey = new Date(date).toISOString().slice(0,10);    acc[dateKey] = acc[dateKey] || [];    acc[dateKey].push({title});    return acc;},{});console.log(result);

米琪卡哇伊

试试这个let items = [      {title: 'Hiking', date: new Date('2020-05-10')},      {title: 'Shopping', date: new Date('2020-05-10')},      {title: 'Hiking', date: new Date('2020-05-22')},      {title: 'Football', date: new Date('2019-05-22')},      {title: 'Football', date: new Date('2020-05-28')},      {title: 'Hiking', date: new Date('2020-05-28')},      {title: 'Cricket', date: new Date('2020-05-28')},     ];    items.sort(function(a,b){      return a.date - b.date;    });    console.log(items);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript