Показать сообщение отдельно
  #9 (permalink)  
Старый 10.07.2020, 05:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

ArchibaldIron, просто правильно указать параметры цикла. Пусть N - это количество элементов массива, а L - это размер элементов которые должны подвергнуты изменению, P - это количество элементов которые нужно пропускать, I - итератор цикла. Если брать срез массива, начало которого будет задаваться значением I, а размер L, при этом приращение итератора будет равно I += L + P, то вы получите желаемое. В вашем случае L = P, следовательно приращение итератора I += L * 2.

for(I=0; I<N; I+=L*2) [].slice(I, L)


Этот пример хорошо поясняет суть - берем отрезок и с нужным интервалом продвигаясь по нему берем его необходимую часть. Но с этим примером нужно: а) получить массив элементов для обхода их в цикле, б) получать срез элементов и их обходить во вложенном цикле. Но принцип подсказывает, что можно обойтись одним циклом, опять таки обойтись только управлением итератора. Предлагается немного подумать над подсказками:

1) Знаем размер N
2) Знаем длину L
3) От деления N / L можно брать только целые значения
4) Целое от деления будет иметь четные и нечетные значения
5) Четные и нечетные значения, и L

Можно ли с этими вводными решить вашу задачу используя только один цикл?

Последний раз редактировалось laimas, 10.07.2020 в 05:30.
Ответить с цитированием