查找数组的每个子数组包含的值

时间:2019-10-14 22:10:02

标签: ruby-on-rails arrays ruby

我有一个Array数组。可以有两个或多个子数组:

array = [
  ["66892885", "66891801", "66924833", "66892255"],
  ["65167829", "65167828", "66924833"],
  ["66924833", "66891801"]
]

我只需要在每个子数组中找到的值。因此,在这种情况下,"66924833"是唯一的匹配项。为了使结果中显示一个值,每个子数组都必须包含它。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

您可以将inject与Array的Set Intersection (#&)方法结合使用

array.inject(:&)

获得所需的结果:

array=[["66892885", "66891801", "66924833", "66892255", "1", "33"],
       ["65167829", "65167828", "66924833", "1", "33", "44"], 
       ["2344", "66924833", "1", "33"]]

array.inject(:&)
#=>["66924833", "1", "33"]