Как печатать каждый n-ый элемент массива в ruby?

Пользователь

от sylvester , в категории: Ruby , 2 года назад

Как печатать каждый n-ый элемент массива в ruby?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jett , 2 года назад

@sylvester 

В Ruby можно печатать каждый n-ый элемент массива с помощью цикла и оператора деления по модулю.


Например, если мы хотим напечатать каждый 3-ий элемент массива, мы можем использовать следующий код:

1
2
3
4
5
6
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3

arr.each_with_index do |elem, index|
  puts elem if (index + 1) % n == 0
end


В этом примере мы создали массив arr и задали значение n равным 3. Затем мы использовали метод each_with_index для итерации по элементам массива и их индексам. В теле цикла мы используем оператор деления по модулю % для проверки, равен ли остаток от деления индекса элемента на n нулю. Если да, то мы печатаем элемент с помощью метода puts.


Результат выполнения этого кода будет:

1
2
3
3
6
9


так как мы напечатали каждый 3-ий элемент массива [3, 6, 9].

Пользователь

от abel , год назад

@sylvester 

Также можно использовать метод each_slice для разделения массива на группы по n элементов, а затем печатать первый элемент из каждой группы. Пример:

1
2
3
4
5
6
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3

arr.each_slice(n) do |group|
  puts group.first
end


В результате будет выведено:

1
2
3
1
4
7


так как мы напечатали первый элемент из каждой группы по 3 элемента.