|
перебор массива с отступом
Добрый день,
Кто-нибудь знает как называется алгоритм который перебирает точки массива (матрицы) с отступом или по кругу не знаю как точно описать. Пример: МАССИВ [01, 02, 03, 04] [05, 06, 07, 08] [09, 10, 11, 12] [13, 14, 15, 16] На выходе перебора с шагом 1 (4 массива 2х2): #1 | #2 [01, 02] | [03, 04] [05, 06] | [07, 08] ----------+----------- #3 | #4 [09, 10] | [11, 12] [13, 14] | [15, 16] На выходе перебора с шагом 2 (1 массив 2х2): #1 [01, 03] [09, 11] На выходе перебора с шагом 3 (1 массив 2х2): #1 [01, 04] [13, 16] P.S. - обернул в [html] что бы не потерять отступы... не обращайте на это внимание P.P.S. - Для тех кто не знает как читать многомерные массивы добавил рамки |
так сделать сам я сдела но может что знает вариант получше а то этот какой то деревянный
var arr = [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16] ], step = 1; for(i=0; i < 4; i=i+step*2) { for(j=0; j < 4; j=j+step*2) { var dot1 = arr[i][j], dot2 = arr[i][j+step], dot3 = arr[i+step][j], dot4 = arr[i+step][j+step]; alert("Section" + (i+j) + ": [" + dot1 + ", " + dot2 + ", " + dot3 + ", " + dot4 + "]"); } } |
array.slice()
|
laimas,
и как это поможет с двумерным массивом?! а если шаг будет не еденица а 3 тогда как?! |
Какая разница какой он у вас, вам же нужно получать срезы массива, что и делает slice(), указывайте необходимую длину, получайте, выводите, и также в цикле.
На php можно было бы и короче, одной функций можно разбить массив на массивы по N элементов сразу. |
не не мне нужны только крайние точки а не срезы... в этом то и вся разница
то есть если следовать примеру из Топика то если установить шаг 3, тогда вернется массив: [ [1,4] [13,16] ] конечно можно получить крайние точки но что делать с точками ниже?... хммм ну в общем да можно использовать слайс.. ок = спасибо ... но всеже это не совсем то |
Цитата:
[01, 02, 03, 04] ... На выходе перебора (4 массива 2х2): показать чистый исходник в новом окне Скрыть/показать номера строк печать кода с сохранением подсветки #1 #2 [01, 02] [03, 04] .... Что здесь тогда крайнее? ) |
Цитата:
массив №2 [[03,04][07,08]] массив №3 [[09,10][13,14]] массив №4 [[11,12][15,16]] Надеюсь тперь понятнее ) |
Изначально так и надо было написать. Ну и в чем проблема - зная вложения массива, получать по их индексам их срезы, четные и нечетные?
|
Цитата:
|
Часовой пояс GMT +3, время: 22:25. |
|