从数组数组中选择行

时间:2014-07-24 23:23:15

标签: ruby arrays

我尝试使用已定义的方法(可能在类中)打印以下数组数组的第四行。

array_of_arrays = [
  ["1", "2", "3", "4"],
  ["g", "h", "y", "t"],
  ["p", "v", "b", "q"],
  ["z", "z", "z", "z"]
]

我尝试了几个,但它不起作用,因为我需要调用方法中的特定行。虽然我熟悉链接方法(如.slice),但我需要在类中定义一个方法,该方法将产生预期的行。我尝试过哈希和块试验,但它们似乎不适用于我的解决方案。我真的很想找到替代品。谢谢!

hsh = {}
array_of_arrays.each { |x| hsh[x[0]] = x[1]}

p array_of_arrays.map { |row| row[2]  }

p array_of_arrays { |row|  row.values }

hsh_boggled = {}
array_of_arrays.each do |x|
  key = x[0]
  val = x[1]
hsh_boggled[key] = val
end

所以,我想定义一个可以调用给定行的方法;因此,使用方法从array_of_arrays调用第4行将输出[" z"," z"," z"," z"]。谢谢!

1 个答案:

答案 0 :(得分:2)

如果您真的想要一种方法,请使用slice

array_of_arrays.slice(3) #=> ["z", "z", "z", "z"]

Cary Swoveland的评论是做同样事情的替代语法,也是更常见的方法:

array_of_arrays[3] #=> ["z", "z", "z", "z"]