让我说说我的状态列表:
list: SomeObj[];
其中:
SomeObj: {name: string, val: number}
然后在SomeObj []中有以下项目:
{name: Alice, val: 1}
{name: Bob, val: 2}
{name: Bob, val: 2}
{name: Conrad, val: 3}
我如何订阅以下内容:
{name: Alice, val: 1}
{name: Bob, val: 4}
{name: Conrad, val: 3}
在val属性上求和的同时加入name属性。
答案 0 :(得分:1)
您需要创建一个选择器,将选择器按名称分组:
getSumByName = createSelector(
state => state.list,
list => groupBy(list, name)
)
您可以在此处阅读如何实现groupBy函数:
What is the most efficient method to groupby on a JavaScript array of objects?