查找Array是否包含Javascript的5个连续数字

我有一个包含数字的排序数组.我想能够检查这个数组(或类似的数组)是否包含连续顺序的5个数字.

注意:数组可能包含重复和双位数字.

我正在尝试这个,但是没有史诗般的失败.

var array = [1,3,5,7,7,8,9,10,11]
var current = null;
var cnt = 0;
for (var i = 0; i < array.length; i++) {
    if (array[i] != current) {
        if (cnt > 4) {
            return true;
        }
        current = array[i];
        cnt = 1;
    } else {
        cnt++;
    }

}
if (cnt > 4) {
    return true;
}

}

最佳答案 当它击中两个7时,cnt只会增加一次.

将递增行放在truthy条件中,将重置行放在else语句中.

// Put into a function for testing.
function foo() {
  var array = [1, 3, 5, 7, 7, 8, 9, 10, 11]
  var current = null;
  var cnt = 0;

  for (var i = 0; i < array.length; i++) {
    // Also need to make sure the next array item is a consecutive increase.
    if (array[i] != current && array[i] === array[i-1] + 1) {
      if (cnt > 4) {
        return true;
      }

      current = array[i];
      cnt++;
    } else {
      cnt = 1;
    }
  }

  if (cnt > 4) {
    return true;
  } else {
    return false;
  }
};

// Call function.
alert(foo());
点赞