如何应用传递给数组的每个元素的块

时间:2013-10-31 09:28:43

标签: ruby arrays map block enumerable

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

E.g:

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

2 个答案:

答案 0 :(得分: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 
}

答案 1 :(得分: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]]