我正在跟踪一系列长跑的里程数。我想计算取得进展的次数(即记录距离超过先前记录距离的次数)。我相信 .every() 方法在这里对我有用。我需要一个计数器,每当它找到一个大于前一个项目的项目时,它就会增加一个。这是我自己无法生成的最后一点功能逻辑。const progressDays = (runs) => {return runs.reduce(aFunc, 0) }const aFunc = (total, num) => { //the logic I need goes here}}console.log(progressDays([3, 4, 1, 2]))我希望上述代码的输出为 2,因为有 2 次 (3->4) 和 (1->2) 取得了进展。
2 回答
MYYA
TA贡献1868条经验 获得超4个赞
您可以通过使用减少的索引进行解构来减少数组并从数组中获取实际值和前一个值。然后用条件数。
const
progressDays = runs => runs.reduce(check, 0),
check = (total, num, i, { [i - 1]: prev }) => total + (prev < num);
console.log(progressDays([3, 4, 1, 2]));
添加回答
举报
0/150
提交
取消