访问多维数组中的奇点

时间:2016-03-21 10:16:09

标签: arrays ruby multidimensional-array

下面的代码可以很好地将每个其他项目放在常规数组中。

letters = [["a", "b"], ["c", "d"], ["e", "f"], ["g", "h"], ["i", "j"]]
letters.each.with_index do |i, index|
  if (index %2 ==0)  then
    puts "#{[index, i]}"
  end
end

但是在多维方面,我无法想象如何从0 - >获取每个数组的第二项。 b1 - > d等任何想法?

4 个答案:

答案 0 :(得分:1)

letters.each do |letter|
  puts letter[1] # Will give you second item of sub array
end

如果你想在子数组的偶数索引处获取项目,你还必须遍历子数组

letters.each do |letter|
  letter.each.with_index do |l, i|
    if (i %2 ==0)  then
      puts "#{[l, i]}"
    end
  end
end

答案 1 :(得分:0)

让我们不要忘记简单:第一个和:数组的最后一个属性。

irb(main):001:0> letters = [["a", "b"], ["c", "d"], ["e", "f"], ["g", "h"], ["i", "j"]]
=> [["a", "b"], ["c", "d"], ["e", "f"], ["g", "h"], ["i", "j"]]
irb(main):002:0>  puts letters.map(&:last).to_s
["b", "d", "f", "h", "j"]

答案 2 :(得分:0)

letters.each_index.zip(letters.transpose.last)
  #=> [[0, "b"], [1, "d"], [2, "f"], [3, "h"], [4, "j"]]

答案 3 :(得分:-1)

您可以执行以下操作:

Imports A, D from File2
Adds B

在迭代letters = [["a", "b"], ["c", "d"], ["e", "f"], ["g", "h"], ["i", "j"]] letters.each.with_index do |element, index| if (index %2 ==0) then puts "#{[index, element[1]]}" end end => [0, "b"] [2, "f"] [4, "j"] 时,letters是一个数组。您可以按原样访问其字段。

编辑:
如果你真的想要所有的元素只是删除条件:

element