1 回答
TA贡献1779条经验 获得超6个赞
我写了一下!这个解释都在注释那里了,看了就明白了!
function countLen(arr){
//如果参数不是数组或者长度为0,直接返回0
if(arr.constructor!==Array||arr.length===0){return 0;}
//首先进入当前连续长度nowLen设初始化为1,最大连续长度maxLen初始化为0
var nowLen=1,maxLen=0;
for(var i=1,len=arr.length;i<len;i++){
//当前数组元素是不是比上一个数组大1
if(arr[i]-arr[i-1]===1){
//如果是,当前连续长度nowLen+1
nowLen++;
}
else{
//否则先判断,当前连续长度是否大于最大连续长度
if(maxLen<nowLen){
//如果是就赋值
maxLen=nowLen
}
//当前连续长度初始化为1
nowLen=1;
}
}
//循环完再判断一次当前连续长度是否大于最大连续长度(避免最大连续长度是数组最后面几个数组时产生的bug)
if(maxLen<nowLen){
maxLen=nowLen
}
//返回最大连续长度
return maxLen;
}
添加回答
举报