1 回答

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
我寫(xiě)了一下!這個(gè)解釋都在注釋那里了,看了就明白了!
function countLen(arr){
//如果參數(shù)不是數(shù)組或者長(zhǎng)度為0,直接返回0
if(arr.constructor!==Array||arr.length===0){return 0;}
//首先進(jìn)入當(dāng)前連續(xù)長(zhǎng)度nowLen設(shè)初始化為1,最大連續(xù)長(zhǎng)度maxLen初始化為0
var nowLen=1,maxLen=0;
for(var i=1,len=arr.length;i<len;i++){
//當(dāng)前數(shù)組元素是不是比上一個(gè)數(shù)組大1
if(arr[i]-arr[i-1]===1){
//如果是,當(dāng)前連續(xù)長(zhǎng)度nowLen+1
nowLen++;
}
else{
//否則先判斷,當(dāng)前連續(xù)長(zhǎng)度是否大于最大連續(xù)長(zhǎng)度
if(maxLen<nowLen){
//如果是就賦值
maxLen=nowLen
}
//當(dāng)前連續(xù)長(zhǎng)度初始化為1
nowLen=1;
}
}
//循環(huán)完再判斷一次當(dāng)前連續(xù)長(zhǎng)度是否大于最大連續(xù)長(zhǎng)度(避免最大連續(xù)長(zhǎng)度是數(shù)組最后面幾個(gè)數(shù)組時(shí)產(chǎn)生的bug)
if(maxLen<nowLen){
maxLen=nowLen
}
//返回最大連續(xù)長(zhǎng)度
return maxLen;
}
添加回答
舉報(bào)