Как записать последовательность? Всем привет Подскажите плз, как оформить такую последовательность математически (а лучше даже в виде алгоритма или на псевдокоде) - чтобы можно было в цикле оформить массивА = [а,а,а,а,б,б,б,б,б,б,в,в,в,в,в,в,г,г,г,г] массивБ = [[a,a,a,a], [б,б,б][б,б,б], [в,в] [в,в] [в,в] [г] [г] [г] [г]] нужно из массиваА получить массивБ уже второй день бьюсь, не могу толком сообразить спасибо
Для преобразования массива массиваА в массив массиваБ можно использовать следующий псевдокод:
Создать новый пустой массив массиваБИнициализировать переменную текущий_элемент как первый элемент массиваАИнициализировать переменную счетчик как 1Перейти к следующему элементу массиваАЕсли текущий элемент равен предыдущему элементу, увеличить счетчик на 1Иначе добавить [текущий элемент * счетчик] в массивБ, сбросить счетчик в 1Если достигнут конец массива массиваА, добавить [текущий элемент * счетчик] в массивБВернуть массив массиваБ
Пример на JavaScript:
function toArrayOfArrays(arr) { let result = []; let currentElement = arr[0]; let count = 1; for (let i = 1; i < arr.length; i++) { if (arr[i] === currentElement) { count++; } else { result.push(Array(count).fill(currentElement)); count = 1; currentElement = arr[i]; } } result.push(Array(count).fill(currentElement)); return result; } let массивА = ['а','а','а','а','б','б','б','б','б','б','в','в','в','в','в','в','г','г','г','г']; let массивБ = toArrayOfArrays(массивА); console.log(массивБ);
Этот код преобразует массивА в массивБ, как описано в вашем вопросе.
Для преобразования массива массиваА в массив массиваБ можно использовать следующий псевдокод:
Создать новый пустой массив массиваБИнициализировать переменную текущий_элемент как первый элемент массиваАИнициализировать переменную счетчик как 1Перейти к следующему элементу массиваАЕсли текущий элемент равен предыдущему элементу, увеличить счетчик на 1Иначе добавить [текущий элемент * счетчик] в массивБ, сбросить счетчик в 1Если достигнут конец массива массиваА, добавить [текущий элемент * счетчик] в массивБВернуть массив массиваБПример на JavaScript:
function toArrayOfArrays(arr) {let result = [];
let currentElement = arr[0];
let count = 1;
for (let i = 1; i < arr.length; i++) {
if (arr[i] === currentElement) {
count++;
} else {
result.push(Array(count).fill(currentElement));
count = 1;
currentElement = arr[i];
}
}
result.push(Array(count).fill(currentElement));
return result;
}
let массивА = ['а','а','а','а','б','б','б','б','б','б','в','в','в','в','в','в','г','г','г','г'];
let массивБ = toArrayOfArrays(массивА);
console.log(массивБ);
Этот код преобразует массивА в массивБ, как описано в вашем вопросе.