如何在Ruby中获取在数组数组上调用函数的最小结果

时间:2016-06-07 20:55:02

标签: ruby

假设我有一个返回int的函数foo(x,y)。我的数据集是一个像a = [[1], [2,3], [4]]这样的数组。我想执行foo但是对于a的每个索引,如果数组有多个元素,我只想要最小值。
所以我想计算foo(1, 1 foo(1,4)以及foo(1,2) foo(1,3)之间的最小值。

因此,如果foo(1,2)较低,我对a的第一个索引的计算为foo(1,1) foo(1,2) foo(1,4),并将该总计推送到某个数组b。我想为a中的每个元素执行此操作,a中的每个元素都可能包含多个元素

1 个答案:

答案 0 :(得分:2)

b = a.map{|arr| arr.map{|value| foo(1, value) }.min }

对于每个内部数组值,它执行foo(1,value),然后选择最小结果。在只有一个值的情况下,当然只计算一个数字。

不清楚" 1"在您的示例中表示(foo的第一个参数)