在Ruby中循环遍历多维数组

时间:2019-09-27 03:41:31

标签: ruby loops multidimensional-array

这是我遇到的问题。 “ 遍历多维数组,并打印出数组中偶数项的全部信息(即多维数组中的第二和第四数组)。”我的任务是输出所有数据在应为[1] [3]的偶数数组中,它将仅输出数组“ derrick”和“ andrew”中的所有信息。

s3cmd

2 个答案:

答案 0 :(得分:1)

类似这样的东西:

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

答案 1 :(得分:0)

您可以检查Enumerable#partitionEnumerable#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? }