Javascript 计算数组中的元素总数,该总数大于同一数组中的上一个元素

Javascript 计算数组中的元素总数,该总数大于同一数组中的上一个元素,javascript,arrays,Javascript,Arrays,我正在追踪一系列长跑的里程数。我想计算进度的次数(即记录的距离超过先前记录的距离的次数) 我确信.every()方法在这里对我很有用。我需要一个计数器,每当它发现一个大于前一个项目的项目时,计数器就会增加一个。这是我自己无法生成的最后一点功能逻辑 const progressDays = (runs) => { return runs.reduce(aFunc, 0) } const aFunc = (total, num) => { //the logic I ne

我正在追踪一系列长跑的里程数。我想计算进度的次数(即记录的距离超过先前记录的距离的次数)

我确信.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)中取得了进展。

从第二个元素开始迭代,检查它是否大于
arr[I-1]

const progressDays=(运行)=>{
设total=0;
for(设i=1;i运行[i-1]){
总计++;
}
}
返回总数;
}

log(progressDays([3,4,1,2])
您可以减少数组,并通过使用减少的索引进行分解,从数组中获取实际值和以前的值。然后,根据条件计算该值

const
progressDays=runs=>runs.reduce(选中,0),
check=(total,num,i,{[i-1]:prev})=>total+(prev日志(progressDays([3,4,1,2])
“我确信.every()方法在这里对我很有用”如何?在这里发布的内容如此之少,你是否希望有人理解你的意思,然后提供一个完整的解决方案?是的,我能看到
reduce
工作的唯一方法是生成一个包含顺序元素对的数组
[3,4,1,2]
->
[[3,4]、[4,1]、[1,2]]
然后调用
reduce
仅当
arr[1]>arr[2]
时才进行求和。或者运行
filter
->
reduce
。但这总的来说很难看,一个简单的循环应该是正确的答案。我也在考虑使用一个测试:
if(I==0)returncount/*代码的其余部分*/
,但是是的,很糟糕