为了账号安全,请及时绑定邮箱和手机立即绑定

js计算数组连续的最大长度问题

js计算数组连续的最大长度问题

不负相思意 2018-12-11 13:15:20
假如有一个数组var arr=[1,2,4,5,6,8,9,10,11]怎么计算最大的连续长度 也就是4
查看完整描述

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;

}

https://img1.sycdn.imooc.com//5c4c263c0001cb0404090081.jpg

https://img1.sycdn.imooc.com//5c4c263e00014bb703830078.jpg

查看完整回答
反对 回复 2019-01-26
  • 1 回答
  • 0 关注
  • 647 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信