Answers:
而且,简单一点。
>> hash = { "a"=>["a", "b", "c"], "b"=>["b", "c"] }
=> {"a"=>["a", "b", "c"], "b"=>["b", "c"]}
>> hash.values
=> [["a", "b", "c"], ["b", "c"]]
map),因为我非常喜欢这个!
                    Hash#values不仅更简单,而且效率更高。比较time ruby -e '(1..1000000).reduce({}){|h,i| h.store i,i; h}.values'有time ruby -e '(1..1000000).reduce({}){|h,i| h.store i,i; h}.map{|k,v| v}'
                    我会用:
hash.map { |key, value| value }Hash#values。
                    hash.collect { |k, v| v }
#returns [["a", "b", "c"], ["b", "c"]] Enumerable#collect接受一个块,并在可枚举的每个元素上返回一次运行该块的结果的数组。因此,此代码仅忽略键并返回所有值的数组。
该Enumerable模块非常棒。很好地了解它可以为您节省大量时间和代码。
hash.values这里最终是正确的答案。
                    hash.map(&:second):)
                    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)
hash.values是更好的IMO)。但是我想指出的是,当您向其提供块时Hash#each,它将仅返回哈希的完整值。如果要对每个项目进行操作并将其作为数组返回,请使用Hash#collect或其别名Hash#map。有关Enumerables的更多信息,请点击此处。