Цикл хотя многомерный массив в рубине - PullRequest
0 голосов
/ 27 сентября 2019

Это вопрос, с которым у меня проблемы.« Выполните цикл по многомерному массиву и распечатайте полную информацию о четных элементах в массиве (т. Е. О 2-м и 4-м массиве в многомерном массиве) ». Мне поручено вывести все данные вмассив с четным номером, который должен быть [1] [3], который будет выводить всю информацию только из массива "derrick" & "andrew".

kristopher = ["kris", "palos hills", "708-200", "green"]
derrick = ["D-Rock", "New York", "773-933", "green"]
willie = ["William", "Humbolt Park", "773-987", "Black"]
andrew = ["drew", "northside", "773-123","blue"]

friends = [kristopher, derrick, willie, andrew]

friends.each do |arr|
print arr [0..4]
end

#Output

["kris", "palos hills", "708-200", "green"]["D-Rock", "New York", "773-933", "green"]["William", "Humbolt Park", "773-987", "Black"]["drew", "northside", "773-123", "blue"]

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

Примерно так:

kristopher = ["kris", "palos hills", "708-200", "green"]
derrick = ["D-Rock", "New York", "773-933", "green"]
willie = ["William", "Humbolt Park", "773-987", "Black"]
andrew = ["drew", "northside", "773-123","blue"]

friends = [kristopher, derrick, willie, andrew]

(1...friends.length).step(2).each do |friendIndex|
    friend = friends[friendIndex]
    print friend 
end
0 голосов
/ 27 сентября 2019

Вы можете проверить Enumerable # partition и Enumerable # each_with_index , которые полезны для разбиения массива по условию индекса элементов.Если вы используете Integer # even? , вы можете разделить четные и нечетные индексы (в нашем случае + 1).

friends.partition.with_index { |_, i| (i + 1).even? }
#=> [[["D-Rock", "New York", "773-933", "green"], ["drew", "northside", "773-123", "blue"]], [["kris", "palos hills", "708-200", "green"], ["William", "Humbolt Park", "773-987", "Black"]]]

Итак, для вашего случая возьмите первыйэлемент:

friends.partition.with_index { |_, i| (i + 1).even? }.first

Или вы можете пойти прямо с Enumerable # select :

friends.select.with_index { |_, i| (i + 1).even? }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...