Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays ruby返回存在于每个嵌套数组中的值数组_Arrays_Ruby_Metaprogramming - Fatal编程技术网

Arrays ruby返回存在于每个嵌套数组中的值数组

Arrays ruby返回存在于每个嵌套数组中的值数组,arrays,ruby,metaprogramming,Arrays,Ruby,Metaprogramming,我想构建一个ruby函数,用于查找所有嵌套数组的公共元素。例如,给定以下数组,这就是它将得到的答案 [[1, 2, 3], [1, 2], [2]] => [2] [[1, 2, 3], [1, 2, 4]] => [1, 2] 我可以 arr = [[1, 2, 3], [1, 2], [2]] arr[0] & arr[1] & arr[2] => [2] 但不确定如何使该操作动态。您正在寻找aka方法。这将对可枚举项(如数组)执行聚合计算。如果不向其

我想构建一个ruby函数,用于查找所有嵌套数组的公共元素。例如,给定以下数组,这就是它将得到的答案

[[1, 2, 3], [1, 2], [2]]
=> [2]

[[1, 2, 3], [1, 2, 4]]
=> [1, 2]
我可以

arr = [[1, 2, 3], [1, 2], [2]]
arr[0] & arr[1] & arr[2]
=> [2]
但不确定如何使该操作动态。

您正在寻找aka方法。这将对可枚举项(如数组)执行聚合计算。如果不向其传递初始值,它将使用集合的第一个元素作为初始值

arr.reduce { |a, b| a & b } # => [2]
这类表达有一个方便的简写:

[[1, 2, 3], [1, 2], [2]].reduce(:&) # => [2]
[[1, 2, 3], [1, 2, 4]].reduce(:&)   # => [1, 2]
[[1], [2]].reduce(:&)               # => []
[].reduce(:&)                       # => nil
你在寻找aka方法。这将对可枚举项(如数组)执行聚合计算。如果不向其传递初始值,它将使用集合的第一个元素作为初始值

arr.reduce { |a, b| a & b } # => [2]
这类表达有一个方便的简写:

[[1, 2, 3], [1, 2], [2]].reduce(:&) # => [2]
[[1, 2, 3], [1, 2, 4]].reduce(:&)   # => [1, 2]
[[1], [2]].reduce(:&)               # => []
[].reduce(:&)                       # => nil