郎朗坤
您可能想要做的是将数据分组而不是过滤/删除项目。所以如果你从一个形状开始[ {name: 'bloodline', date: '2020-07-04' }, {name: 'celtics', date: '2020-07-04' }, {name: 'air dior', date: '2020-07-08' }, {name: 'bloodline 2.0', date: '2020-07-08' },]你可能想把它改成类似{ '2020-07-04': [ {name: 'bloodline', date: '2020-07-04' }, {name: 'celtics', date: '2020-07-04' }, ], '2020-07-08': [ {name: 'air dior', date: '2020-07-08' }, {name: 'bloodline 2.0', date: '2020-07-08' }, ]}或者嵌套数组可能更容易在反应中使用[ { date: '2020-07-04', items: [ {name: 'bloodline', date: '2020-07-04' }, {name: 'celtics', date: '2020-07-04' }, ], }, { date: '2020-07-08', items: [ {name: 'air dior', date: '2020-07-08' }, {name: 'bloodline 2.0', date: '2020-07-08' }, ] }]然后您将映射项目并仅渲染对象键或外部dateLodash 有一个groupBy你可以使用的函数(https://lodash.com/docs/#groupBy),或者这里是一个独立的实现
牛魔王的故事
假设您的 API 的响应是这样的:const data = [ { title: 'bloodline', date: '2020-07-04' }, { title: 'celtics', date: '2020-07-04' }, { title: 'air dior', date: '2020-07-08' }];然后你可以使用LoDash 的 groupBy方法并做这样的事情:const data = [ { title: 'bloodline', date: '2020-07-04' }, { title: 'celtics', date: '2020-07-04' }, { title: 'air dior', date: '2020-07-08' }];const grouped = _.groupBy(data, 'date');for (let date in grouped) { // display date here console.log(date); for (let item of grouped[date]) { // display each item title here console.log(item.title); }}<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>注意:由于您没有提供任何源代码,很可能您需要根据您的用例调整此代码段,但这可能是解决它的起点。