假设我有一个返回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
中的每个元素都可能包含多个元素
答案 0 :(得分:2)
b = a.map{|arr| arr.map{|value| foo(1, value) }.min }
对于每个内部数组值,它执行foo(1,value)
,然后选择最小结果。在只有一个值的情况下,当然只计算一个数字。
不清楚" 1"在您的示例中表示(foo
的第一个参数)