【发布时间】:2020-06-02 14:25:16
【问题描述】:
我试图在映射时提取数组的长度。
会发生什么:
首先我有一个对象数组。每个对象都有一个帖子键,我在其中存储该对象的帖子。我的代码从所有对象中获取所有帖子并将它们映射到一个新数组,以便我可以在前端向用户显示所有对象的所有帖子。
我想一次只显示 10 个帖子。所以我放了一个.slice(0, page * 10)——变量页面由页面底部的一个按钮控制。如果用户点击按钮,页面就会增加屏幕上的帖子数量。
这一切都很好。但是-我希望能够计算帖子总数,并且仅在有更多帖子可用时才显示该按钮。有没有办法在提取帖子数量的同时仍然允许它映射下面这个函数的结果?
{
bandTypes === "all"
? allBands
.filter(band => {
if (showType !== 'Show Type') {
return band.showTypes.includes(showType)
} else {
return band
}
})
.reduce(
(allPosts, band) =>
allPosts.concat(
(band.youtube.length > 0 &&
band.bandBio !== "n/a" &&
band.bandGenre !== "n/a")
? band.posts.map((post) => ({ post, band }))
: []
),
[]
)
.sort((a, b) => new Date(b.post.date) - new Date(a.post.date))
.slice(0, page * 10)
.map(({ post, band }) => <div key={uuidv4()}>{convertPost(post, band)}</div>)
: null
}
如果我可以在其中放置一个匿名函数来将状态设置为数组的长度,那就太好了。
【问题讨论】:
标签: javascript arrays reactjs