假如有 1,2,3,3,3,3,0,1,2,5,5,5,5 这串数字不一定就只代表一串数字,你可以理解为下标一样的东西
  是这样的 
  我要取出该串中 连续相同且大于3个的 数字(下标)
  有人说用for循环,然后再循环外面定义一个变量(如num=0)做记录 循环对比下一个,相同则num++,当>=3则 打印数字。
  这样的话 能得到连续相同的3  但是后面的5就得不到了,所以我 循环对比下一个不相同的时候则 num=0重置 这样想一下是能跑起来的
  
  最后的问题是  这样的for循环 假如如上遇到4个3  那么我也只能打印3个3,需求是  连续存在相同的数字个数>=3都会返回  求大牛指点

解决方案 »

  1.   

    如果已经用循环做出来了,只改下循环条件就行了根据你之前说的当遇到相同的3个数字之后就输出
    改为
    当遇到3个相同数字之后再遇到1个不同数字的时候输出
    判断num的个数输出相同的数字之后再重置num
      

  2.   

    当>=3则 打印数字改成if(n[i] != n[i+1] && num >= 3)
    {
        打印数字
    }
      

  3.   


    var s = [1,2,3,3,3,3,0,1,2,5,5,5,5];
    var v = (" "+s.join("  ")+" ").match(/( \d+ )\1{2,}/g);
    alert(v);
      

  4.   

    var s = [1,2,3,3,3,0,1,2,5,5,5,5,4,7,7,7,7,7];
    var len = s.length;

    var tmp='',
    num=0,
    mask = {};
    for(var i=0;i<len;i++){
    var now = s[i];
    if(tmp === now){
    num++;
    tmp=now;
    if(i==(len-1)){
    if(num>1){
    mask[tmp] = num +1 ;
    num = 0;
    tmp = now;
    }
    }
    }else if(num > 1) {
    mask[tmp] = num + 1 ;
    num = 0;
    tmp = now;
    }else {
    tmp = now;
    }
    }

    var $a = mask;