0

我有一个数组数组,我想知道如何为数组的每个元素调用一个块(如果传递)。

例如:

[[1,2],[3,4],[5,6]].custom_method(first_par,second_par) {|element| p 'This is:' + element.inspect}
4

2 回答 2

0

请参阅 Ruby 中 Array 类的 flatten 函数的文档:

http://ruby-doc.org/core-2.0.0/Array.html#method-i-flatten

例子 :

a =[[1,2], [2,3], [3,4]]
b = a.flatten # gives [1, 2, 2, 3, 3, 4]
b.each { |myelement| 
   #do stuff 
}
于 2013-10-31T09:35:52.887 回答
0

您可以使用Array#map

a =[[1,2], [2,3], [3,4]]
a.map { |x, y| puts "x: #{x}, y: #{y}" }

# x: 1, y: 2
# x: 2, y: 3
# x: 3, y: 4

您还可以做一些有趣的事情,例如:

a.map { |x,y| [x + y] }
# => [[3], [5], [7]]

或者

b = a.map { |x,y| [x, x + y] }
# => [[1, 3], [2, 5], [3, 7]]
于 2013-10-31T09:38:00.497 回答