Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 确定数字何时停止增加_Javascript_Loops - Fatal编程技术网

Javascript 确定数字何时停止增加

Javascript 确定数字何时停止增加,javascript,loops,Javascript,Loops,您处于javascript循环中: 循环将随机数增加或减少1。它从10开始并开始循环: 10, 9, 8, 7, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 4, 5, 6, 7, 6 我想记录峰值数。所以在上面的列表中是10,9,7 所以我假设我需要在脚本循环时记录最后3个数字。2个数字agoa,1个数字agob,当前数字RC,并检查c是否,如我所述,将它们推入数组 var nums = [10, 9, 8, 7, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3,

您处于javascript循环中:

循环将随机数增加或减少1。它从10开始并开始循环:

10, 9, 8, 7, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 4, 5, 6, 7, 6
我想记录峰值数。所以在上面的列表中是10,9,7


所以我假设我需要在脚本循环时记录最后3个数字。2个数字agoa,1个数字agob,当前数字RC,并检查c是否,如我所述,将它们推入数组

var nums = [10, 9, 8, 7, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 4, 5, 6, 7, 6];
var peaks = [];
nums.forEach(function(val, index, arr){ 
    var isPrevLess = index==0 || arr[index-1]<val,  //is the last number less
        isNextLess = index==arr.length-1 || arr[index+1]<val;  //is the next number less
    if (isPrevLess && isNextLess) {  //if both are less it is a peak
        peaks.push(val);
    } 
});
console.log(peaks);

正如我所解释的,将它们推入阵列

var nums = [10, 9, 8, 7, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 4, 5, 6, 7, 6];
var peaks = [];
nums.forEach(function(val, index, arr){ 
    var isPrevLess = index==0 || arr[index-1]<val,  //is the last number less
        isNextLess = index==arr.length-1 || arr[index+1]<val;  //is the next number less
    if (isPrevLess && isNextLess) {  //if both are less it is a peak
        peaks.push(val);
    } 
});
console.log(peaks);

如果我理解正确,长度为l的数组arr在满足以下任一条件时,在位置I处有一个峰值:

0=iarr[i+1] 0l-1 0arr[i-1] 0=i=l-1 然后,你可以使用

var peaks = arr.filter(function(n, i, a) {
  return (i===0 || n > a[i-1]) && (i===a.length-1 || n > arr[i+1]);
});

如果我理解正确,长度为l的数组arr在满足以下任一条件时,在位置I处有一个峰值:

0=iarr[i+1] 0l-1 0arr[i-1] 0=i=l-1 然后,你可以使用

var peaks = arr.filter(function(n, i, a) {
  return (i===0 || n > a[i-1]) && (i===a.length-1 || n > arr[i+1]);
});

你真的应该发布一个函数来实现你所说的,然后尝试一个解决方案。既然不见了

函数foostartNum,count{ var prev=-无穷大; var sense=‘向上’; var curr=startNum; 对于var i=0;i curr“down”:prev食物10,20 你真的应该发布一个函数来实现你所说的,然后尝试一个解决方案。既然不见了

函数foostartNum,count{ var prev=-无穷大; var sense=‘向上’; var curr=startNum; 对于var i=0;i curr“down”:prev食物10,20;所以把它们放到一个数组中。对不起,我不确定我是否理解,你能详细说明一下-我把什么放到一个数组中?我想我理解了,把循环中的所有数字放到一个数组中。然后在循环运行时比较数组中的最后3个数字。谢谢。峰值检查将是如果prev小于,next小于你找到的峰值,那么在峰值数组中推送该数字。你只需要记住最后一个数字以及感觉是增加还是减少。如果检测值增加,且当前数字小于最后一个数字,则将检测值更改为减少,记录最后一个数字,并使当前数字成为最后一个数字。如果当前数大于最后一个数,则感觉正在增加。如果数字是相同的,不管它是什么,都要保持感觉。所以把它们放入一个数组中。对不起,我不确定我是否理解,你能详细说明-我要把什么放入一个数组中?我想我理解了,把循环中的所有数字都放入一个数组中。然后在循环运行时比较数组中的最后3个数字。谢谢。峰值检查将是如果prev小于,next小于你找到的峰值,那么在峰值数组中推送该数字。你只需要记住最后一个数字以及感觉是增加还是减少。如果检测值增加,且当前数字小于最后一个数字,则将检测值更改为减少,记录最后一个数字,并使当前数字成为最后一个数字。如果当前数大于最后一个数,则感觉正在增加。如果数字是相同的,不管它是什么,请保持这种感觉。我已经为问题添加了一些代码,我现在将尝试实现此方法-谢谢!我已经为这个问题添加了一些代码,我现在将尝试实现这个方法-谢谢!我已经为这个问题添加了一些代码,我现在将尝试实现这个方法-谢谢!我已经为这个问题添加了一些代码,我现在将尝试实现这个方法-谢谢!如果input.length<3怎么办?如果input.length<3怎么办?