Javascript - Как проверить, являются ли 3 числа последовательными, и вернуть начальные точки?

Если у меня есть массив [1, 2, 3, 5, 10, 9, 8, 9, 10, 11, 7]и я хочу найти каждый случай 3 последовательных чисел (будь то по возрастанию или по убыванию), как мне это сделать?

Второй частью будет оповещение массива с индексом каждой из этих последовательностей.

Например. предыдущий массив вернет [0,4,6,7].

На данный момент у меня есть это... это грубое начало

var arr = [1, 2, 3, 5, 10, 9, 8, 9, 10, 11, 7];
var results = [];

for (var i = 1; i < arr.length; i++) {
    if ((arr[i] - arr[i-1] != 1) && (arr[i] - arr[i+1] != 1)) {
        results.push(arr[i]);
    }

}
alert(results);

Спасибо за помощь!

Спасибо за указатель math.abs. Вот что я в итоге сделал:

var array = [1, 2, 3, 5, 10, 9, 8, 9, 10, 11, 7];
var indexes = [];

for(var i=0; i < array.length; i++) {
    var diff = array[i+1] - array[i];
    if(Math.abs(diff)==1 && array[i+1]+diff == array[i+2]) {
        indexes.push(i);
    }
}
alert(indexes);
5
задан Bill the Lizard 28 November 2012 в 15:02
поделиться