gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:33 26 4
gpt4 key购买 nike

我想构建一个 ruby​​ 函数来查找所有嵌套数组的公共(public)元素。例如,给定以下数组,这就是它会得出的答案...

[[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]

但不确定如何使该操作动态化。

最佳答案

您正在寻找 Enumerable#reduce (又名 #inject )方法。这对像数组这样的可枚举对象执行聚合计算。如果你不给它传递一个初始值,它会使用集合的第一个元素作为初始值。

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

关于arrays - ruby 返回存在于每个嵌套数组中的值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47488896/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com