数组约简:另一个数组内的数组长度总和

时间:2019-02-03 09:46:22

标签: arrays reduce reselect

我很难从一系列选择中计算出总票数。我有一个像下面的json

 {
    id:1,
    pollName: 'aaaaa',
    pollChoices:[
    id: 2,
    choice : 'dddd',
    votes: [
     {

     }
    ]
  ]
 }

我正在尝试计算我记住的selectors

中从上述乔恩投票的总数

我的代码如下所示

const pollChoices: Array<PollChoice> = poll.get("PollChoices").toJS();
            const pollStatistic = pollChoices
               .reduce((prev: any, curr: any) => {
                console.log("The pollStatistic is ", prev);
                return { curr, totalVotesCasted: (prev.Votes ? 
                  (prev.Votes.length + curr.Votes.length) : 
                   0 + curr.Votes.length )}
            }, {});

 console.log("The pollStatistic is ", pollStatistic);

pollStatistic中的控制台似乎显示了我的totalVotesCasted,但是,当我打印pollStatistic时,它始终是未定义的,我希望能够使pollStatistic.totalCount处于我的状态。请提供任何帮助。

1 个答案:

答案 0 :(得分:1)

这不是reduce的工作方式。 您向reduce函数传递此签名的reducer回调:function reducer(accumulator, currentValue, currentIndex) { ... }

回调应返回要传递给下一个迭代的累加器的值。 在您访问prev.Votes的情况下,您应该访问prev.totalVotesCasted,这是您在累加器上设置的值。