2 回答

TA貢獻1921條經驗 獲得超9個贊
您可能想要做的是將數據分組而不是過濾/刪除項目。
所以如果你從一個形狀開始
[
{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' },
]
}
]
然后您將映射項目并僅渲染對象鍵或外部date
Lodash 有一個groupBy
你可以使用的函數(https://lodash.com/docs/#groupBy),或者這里是一個獨立的實現

TA貢獻1830條經驗 獲得超3個贊
假設您的 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>
注意:由于您沒有提供任何源代碼,很可能您需要根據您的用例調整此代碼段,但這可能是解決它的起點。
添加回答
舉報