繁体   English   中英

空的时如何将蓄能器散布在减速器中?

[英]How to spread the accumulator in a reducer when's empty?

我想构建一个以age为键的 object,该键的值将是一个名称对应的数组。

数组:

const arr = [{
    name: "Rita",
    age: 23
  },
  {
    name: "John",
    age: 25
  },
  {
    name: "Barbara",
    age: 23
  },
]

我想要的结果:

const obj = {
  23: ["Rita", "Barbara"],
  25: ["John"]
}

我已经用reduce构建了一些东西,但是说...(acc[curr.age] || {}), curr.name是不可迭代的。

我的怀疑是它不喜欢将首字母作为空的 object ( {} )。 但是我不能有一个带键的首字母,因为它们应该是动态的。

这是我的非工作解决方案:

const obj = arr.reduce((acc, curr) => {
  return {
    ...(acc || {}),
    [curr.age]: [...(acc[curr.age] || {}), curr.name]
  }
}, {})

错误出现在...(acc[curr.age] || {})上。 acc[curr.age]应该是一个数组,不是吗? 看看您期望的最终结果。

const obj = arr.reduce((acc, curr) => {
  return {
    ...(acc || {}),
    [curr.age]: [...(acc[curr.age] || []), curr.name]
  }
}, {})

上网查一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM