繁体   English   中英

如何检查数组中的数字序列是增加一个还是多个?

[英]How can I check if sequence of numbers in an array is increasing by one, or more than one?

我有一个数字数组

let myNumbers = [95, 96, 97, 98, 99, 101, 102, 103, 104];

我需要返回101因为它破坏了序列,增加了两个。

谢谢。

您可以从1开始for循环,以排除现有检查。

 let myNumbers = [95, 96, 97, 98, 99, 101, 102, 103, 104]; const findElement = arr => { for(let i = 1; i < arr.length; i++) { if (arr[i] - arr[i-1] > 1) { return arr[i] } } return false; } console.log(findElement(myNumbers)) 

您可以使用find方法并检查prev元素是否等于当前元素-1。

 let myNumbers = [95, 96, 97, 98, 99, 101, 102, 103, 104]; let result = myNumbers.find((e, i, a) => i != 0 && e - 1 != a[i - 1]); console.log(result) 

使用simple for循环并检查项目的值。

 let myNumbers = [95, 96, 97, 98, 99, 101, 102, 103, 104]; for(var i=0; i<myNumbers.length; i++) if (i!=0 && myNumbers[i]>0 && myNumbers[i]-1 != myNumbers[i-1]) console.log(myNumbers[i]); 

 let myNumbers = [95, 96, 97, 98, 99, 101, 102, 103, 104]; function incrementsBy(n, sequence) { let lastNumber = sequence[0] for(let n of sequence) { if(n - lastNumber > 1) return n lastNumber = n } return null } console.log(incrementsBy(1, myNumbers)) 

您可以如下所示使用for循环,

 function ShowBreak() { let myNumbers = [95, 96, 97, 98, 99, 101, 102, 103, 104] for (i = 0; i < myNumbers.length - 1; i++) { var currentNo = myNumbers[i]; var nextNo = myNumbers[i + 1]; var differents = nextNo - currentNo; if (differents > 1) { console.log(nextNo); return alert("Sequence break on number " + nextNo + " by increase " + differents); } } return alert('Sequence not breaked.'); } 
 <input type="button" class="btn btn-lg btn-primary btn-block" onclick="ShowBreak()" value="Show" /> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM