@kuzubina

Как найти последовательные элементы в массиве?

Есть массив такого вида [0,1,3,99,4,7,8,9,11,12,15,8,9]
К примеру мне нужно узнать сколько раз попадается последовательность чисел 8,9 (в данном примере попадается 2 раза)
Как это посчитать, подскажите плиз
  • Вопрос задан
  • 174 просмотра
Решения вопроса 1
const array = [0,1,3,99,4,7,8,9,11,12,15,8,9];
let count = 0;
for (let i = 0; i < array.length; i++) {
    if ( array[i] === 8 && array[i+1] === 9 ) {
        count++;
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
GreyCrew
@GreyCrew
Full-stack developer
Подобные задачки делаются по одному шаблону:
- Создайте счетчик
- Делайте цикл по массиву от 0 до n - 1
- Сравниваете i со значением i+1
- Если удовлетворяет вашим критериеям, то увеличивайте счетчик.

Если последовательность может быть длинной, то создаете переменную, которая бы определяла, что последовательность все ещё идет, и в случии false только увеличиваете счетчик.
profit.
Ответ написан
xmoonlight
@xmoonlight Куратор тега JavaScript
https://sitecoder.blogspot.com
Циклический сдвиг по позициям элементов массива с уменьшающимся "окном" просматриваемых элементов: от самого длинного N-1 до 1.

"Окно" совпало с имеющимся образцом для данного размера окна -> инкремент количества данной последовательности.
Не совпало -> новый элемент последовательности для данного размера "окна".

Итог: массив из всех последовательных уникальных сочетаний с указанием количества их повторов в изначальном массиве.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы