arr.sort((a,b)=>a-b);
arr.every((t,i)=>{
return i==0?true:t-arr[i-1]==1?true:false
})
更新
//參數(shù),數(shù)組范圍最小值,范圍最大值
var mtest = function(min,max){
//這里min,max代表順子的最大值與最小值,確定一個(gè)邊界,如1-5
return arr=>{
arr.sort((a,b)=>a-b);
//如果數(shù)組最大值超過(guò)設(shè)定的最大值max,返回錯(cuò)誤提醒
if(arr[arr.length-1]>max){
alert("數(shù)組元素最大值超過(guò)預(yù)期,錯(cuò)誤");
return false;
}
var b = arr.every((m,n)=>n==0?true:m-arr[n-1]==1?true:false);
if(b)return true;//如果傳進(jìn)來(lái)的數(shù)組本身是[2,3,4]這樣的連續(xù)遞增的數(shù)據(jù),返回true
//走到這里,索命傳進(jìn)來(lái)的數(shù)據(jù)不是連續(xù)的,那么可以判斷沒(méi)有的數(shù)據(jù)是不是連續(xù)的
//把1-5這幾個(gè)元素看成一個(gè)圓環(huán),取環(huán)上一段連續(xù)的數(shù)據(jù),那么剩下的數(shù)據(jù)也必然是連續(xù)的
var arr1 = [];
//從[1,2,3,4,5]中檢測(cè)[1,5,2]少了哪些數(shù)據(jù)
for(var i=min;i<max+1;i++){
arr.indexOf(i)<0 && arr1.push(i)
}
//arr1得到[3,4],然后檢測(cè)arr1是不是連續(xù)的
return arr1.every((t,i)=>i==0?true:t-arr1[i-1]==1?true:false)
}
}(1,5);
mtest([1,5,2])
mtest([1,5,2,6])
mtest([3,2,4])