0

我有一个散列,我的每个项目都标有各种代码。

@projects =
{
    "Project A" => ["2","4","11"],
    "Project B" => ["2","3","4"],
    "Project C" => ["2","5","11"]
}

如何搜索附加到特定标签的项目,即输入"4",我们得到["Project A","Project B"].
我已经尝试过标准值搜索方法,但它仅在输入整个数组而不是任何数组中的任何元素时才有效。

这不那么重要,但是否可以通过多个标签进行搜索,即 input ["2","11"],我们得到了["Project A","Project C"]

4

2 回答 2

3

尝试:

def search array, elem
  array.select{|key, value| value.include? elem}
end

和:

def search_many array, *elems
  elems.map{|elem| search array, elem}.flatten.uniq
end
于 2012-06-28T01:04:34.600 回答
0

第一部分的解决方案:

code_2s = @projects.collect{|k,v| (v.include? "2") ? k : nil }.compact
于 2012-06-28T01:04:33.863 回答