Как я могу сопоставить новый массив из определенного (известного) шаблона? - PullRequest
1 голос
/ 30 января 2012

Как правило, , как определить, как выполнить итерацию массива на основе известного шаблона?

В частности , это шаблон, который я хотел бы перебрать, возвращая массив массивов: (Каждая цифра является индексом исходного массива: [0, 1, 2, 3])

0

0,1

0,1,2

0,1,2,3

1

1,2

1,2,3

2

2,3

3

Ответы [ 2 ]

2 голосов
/ 30 января 2012
arr = [0,1,2,3]
main_array = []

arr.each_index{|i|
  arr.each_index{|j|
    if i <= j
      a = arr[i..j]
      main_array.push(a)
    end
  }
}
p main_array
1 голос
/ 30 января 2012

Вот еще одна более краткая альтернатива:

a.size.times { |i| (a.size - i).times { |j| p a[i..j+i] } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...