Redux选择器将对象数组中的数值相加?

时间:2018-01-09 02:54:40

标签: javascript reselect

我有一个具有以下结构的对象列表:

  const budgetCategories = [
    {budgetName: 'budgetName', monthlyCost: '192', rollOverEnabled:true , dueDate: '02'}
  ];

我正在尝试使用reselect构建一个选择器,它将对所有monthlyCost键求和并返回总和。

选择器逻辑

export const getBudgetCategories = (state) => state.getIn(['budget', 'budgetCategories']);


export const getTotalMonthlyBudget = createSelector(
  getBudgetCategories,
  (budget) => { budget.reduce((data) => {console.log(data)}) }
)

我已经尝试了一些地图,但我觉得使用reduce是一些方法。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用reduce来根据回调中的逻辑减少数组 请仔细阅读

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

 export const getTotalMonthlyBudget = createSelector(
          getBudgetCategories,
          (budget) => budget.reduce((totalsum, data) => 
              parseInt(data.monthlyCost, 10) + totalsum, 0)
)