最近我一直在使用reduce函数。我遇到了这个问题,我的函数仅从reduce返回一个数组项,而不是2(数组中有2个项)
这是我的功能:
const pages = await getPosts.reduce((post) => {
const postRoutes = {
[`/blog/${post.slug}`]: {
page: "/blog/post",
query: { 'postSlug': post.slug }
}
};
return postRoutes;
});
答案 0 :(得分:2)
reduce
的回调有两个参数:累加器和当前值。您需要传播累积的数据以及新数据。
它也将初始值作为第二个参数,在这种情况下为空对象。
const example = [{ slug: 'alpha'}, {slug: 'beta'}].reduce((posts, post) => {
const postRoutes = {
[`/blog/${post.slug}`]: {
page: "/blog/post",
query: { 'postSlug': post.slug }
}
};
return {...posts, ...postRoutes };
}, {});
console.log(example);