当值为数组本身时搜索哈希

时间:2012-06-28 00:59:39

标签: ruby hash

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

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

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

第一部分的解决方案:

code_2s = @projects.collect{|k,v| (v.include? "2") ? k : nil }.compact