ES6减少返回的1个数组项,而不是2个

时间:2018-07-27 03:04:58

标签: javascript arrays ecmascript-6

最近我一直在使用reduce函数。我遇到了这个问题,我的函数仅从reduce返回一个数组项,而不是2(数组中有2个项)

这是我的功能:

const pages = await getPosts.reduce((post) => {

  const postRoutes = {
    [`/blog/${post.slug}`]: {
      page: "/blog/post",
      query: { 'postSlug': post.slug }
    }
  };

  return postRoutes;

});

1 个答案:

答案 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);