- Сообщений: 371
- Спасибо получено: 308
Вопрос по массивам Javascript
Подскажите пожалуйста решение
Есть простой одномерный массив 0,1,2,3
и заполняется он рандомно числами:
1,1,1,1 2,2,2,2 3,3,3,3 4,4,4,4
Нужно сделать проверку на 1,2,3,4 случайных, одинаковых, рядом стоящих значений в массиве.
Вопрос: как это сделать?
Пример:
2,2,3,2 или 3,2,2,1 или 4,1,2,2 - пара 2 рядом стоящих, одинаковых числа
2,2,4,4 - две пары рядом стоящих, случайных значений
если 1,1 или 2,2 или 3,3 или 4,4 - стоят рядом в массиве, то происходит действие
1,1,1,4 - 3 рядом стоящих, одинаковых числа
4,4,4,4 - 4 рядом стоящих, одинаковых числа
Будь таким, каким хочешь казаться.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- MaltonTheWarrior
-
- Не в сети
- Давно я тут
-
- Любопытненький
- Сообщений: 328
- Спасибо получено: 341
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
MaltonTheWarrior пишет: Я, конечно, не знаток джава скрипта, но... Не проще ли, именно проще, не говорю, что правильнее, будет конвертнуть массив в строку и просто искать нахождения в ней интересующих тебя сочетаний?
Можно и не на js - мне хотя бы понять алгоритм решения выдуманной мной задачи
Будь таким, каким хочешь казаться.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Если язык не важен, а нужен именно сам алгоритм, то вот держи на Си-подобном синтаксисе:Seibur пишет: Можно и не на js - мне хотя бы понять алгоритм решения выдуманной мной задачи
Второй if вместо else используем, чтобы алгоритм отрабатывал на граничном случае, когда массив заканчивается последовательностью одинаковых чисел.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Seibur пишет: Доброй ночи
Подскажите пожалуйста решение
Есть простой одномерный массив 0,1,2,3
и заполняется он рандомно числами:
1,1,1,1 2,2,2,2 3,3,3,3 4,4,4,4
Нужно сделать проверку на 1,2,3,4 случайных, одинаковых, рядом стоящих значений в массиве.
Вопрос: как это сделать?
Пример:
2,2,3,2 или 3,2,2,1 или 4,1,2,2 - пара 2 рядом стоящих, одинаковых числа
2,2,4,4 - две пары рядом стоящих, случайных значений
если 1,1 или 2,2 или 3,3 или 4,4 - стоят рядом в массиве, то происходит действие
1,1,1,4 - 3 рядом стоящих, одинаковых числа
4,4,4,4 - 4 рядом стоящих, одинаковых числа
что за тему-то проходишь?
если про ес6, то скорее всего следует использовать метод reduce, который позволяет сравнивать соседние элементы массива. метод довольно сложный, поэтому скорее всего придется посидеть повникать
developer.mozilla.org/ru/docs/Web/JavaSc...Objects/Array/Reduce
learn.javascript.ru/array-iteration
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Будь таким, каким хочешь казаться.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Lekste пишет: reduce не для сравнения, а для получения одного значения (например, суммы) из массива
тонкость редюс именно в том как он получает это значение. он сравнивает промежуточное значение (например предыдущий элемент массива) с текущим элементом массивом.
например чтоб сравнить каждое число с предыдущим и вывести в консоль все одинаковые числа, стоящие друг за другом можно написать одну строчкой че-то типа
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Если так и делать, то через reduce получить Массив с тем, что сколько раз встречалось, а дальше по цепочке передать эту информацию куда надо, например, через foreach
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
