ruby散列值的数组

我有这个:

hash = { "a"=>["a", "b", "c"], "b"=>["b", "c"] } 

我想得到这个: [["a","b","c"],["b","c"]]

这似乎应该工作,但它不:

 hash.each{|key,value| value} => {"a"=>["a", "b", "c"], "b"=>["b", "c"]} 

有什么build议么?

    另外,有点简单….

     >> hash = { "a"=>["a", "b", "c"], "b"=>["b", "c"] } => {"a"=>["a", "b", "c"], "b"=>["b", "c"]} >> hash.values => [["a", "b", "c"], ["b", "c"]] 

    Ruby文档在这里

    我会用:

     hash.map { |key, value| value } 
     hash.collect { |k, v| v } #returns [["a", "b", "c"], ["b", "c"]] 

    Enumerable#collect将获取一个块,并返回在枚举的每个元素上运行一次块的结果数组。 所以这段代码只是忽略了键,并返回了所有值的数组。

    Enumerable模块非常棒。 了解它可以为您节省大量的时间和大量的代码。

     hash = { :a => ["a", "b", "c"], :b => ["b", "c"] } hash.values #=> [["a","b","c"],["b","c"]] 

    它和…一样简单

     hash.values #=> [["a", "b", "c"], ["b", "c"]] 

    这将返回一个新的数组填充来自哈希的值

    如果你想存储那个新的数组呢

     array_of_values = hash.values #=> [["a", "b", "c"], ["b", "c"]] array_of_values #=> [["a", "b", "c"], ["b", "c"]] 

    还有这个:

     hash = { foo: "bar", baz: "qux" } hash.map(&:last) #=> ["bar", "qux"] 

    为什么它的作品:

    &在对象上调用to_proc ,并将其作为块传递给方法。

     something {|i| i.foo } something(&:foo)