Array reduce :另一个数组中数组长度的总和
Array reduce : Sum total of Array length in within another array
我在计算选项数组的总票数时遇到困难。我有一个 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 .请提供任何帮助。
这不是 reduce 的工作方式。
您将此签名的缩减器回调传递给缩减函数:function reducer(accumulator, currentValue, currentIndex) { ... }
回调应该return它想要传递给下一次迭代的累加器的值。
在您访问 prev.Votes
的情况下,您应该访问 prev.totalVotesCasted
这是您在累加器上设置的值。
我在计算选项数组的总票数时遇到困难。我有一个 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 .请提供任何帮助。
这不是 reduce 的工作方式。
您将此签名的缩减器回调传递给缩减函数:function reducer(accumulator, currentValue, currentIndex) { ... }
回调应该return它想要传递给下一次迭代的累加器的值。
在您访问 prev.Votes
的情况下,您应该访问 prev.totalVotesCasted
这是您在累加器上设置的值。