我很难从一系列选择中计算出总票数。我有一个像下面的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处于我的状态。请提供任何帮助。
答案 0 :(得分:1)
这不是reduce的工作方式。
您向reduce函数传递此签名的reducer回调:function reducer(accumulator, currentValue, currentIndex) { ... }
回调应返回要传递给下一个迭代的累加器的值。
在您访问prev.Votes
的情况下,您应该访问prev.totalVotesCasted
,这是您在累加器上设置的值。