tbr*_*oke 110 ruby arrays hash
我有这个:
hash = { "a"=>["a", "b", "c"], "b"=>["b", "c"] }
Run Code Online (Sandbox Code Playgroud)
我想谈谈这个: [["a","b","c"],["b","c"]]
这似乎应该可以工作,但它不会:
hash.each{|key,value| value}
=> {"a"=>["a", "b", "c"], "b"=>["b", "c"]}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
Ray*_*oal 246
还有点简单....
>> hash = { "a"=>["a", "b", "c"], "b"=>["b", "c"] }
=> {"a"=>["a", "b", "c"], "b"=>["b", "c"]}
>> hash.values
=> [["a", "b", "c"], ["b", "c"]]
Run Code Online (Sandbox Code Playgroud)
Mic*_*ant 41
我会用:
hash.map { |key, value| value }
Run Code Online (Sandbox Code Playgroud)
jer*_*son 21
hash.collect { |k, v| v }
#returns [["a", "b", "c"], ["b", "c"]]
Run Code Online (Sandbox Code Playgroud)
Enumerable#collect接受一个块,并在枚举的每个元素上返回一次运行块的结果数组.所以这段代码只是忽略了键并返回了所有值的数组.
该Enumerable模块非常棒.了解它可以为您节省大量时间和大量代码.
小智 12
这很简单
hash.values
#=> [["a", "b", "c"], ["b", "c"]]
Run Code Online (Sandbox Code Playgroud)
这将返回一个新数组,其中填充了哈希值
如果你想存储这个新数组
array_of_values = hash.values
#=> [["a", "b", "c"], ["b", "c"]]
array_of_values
#=> [["a", "b", "c"], ["b", "c"]]
Run Code Online (Sandbox Code Playgroud)
hash = { :a => ["a", "b", "c"], :b => ["b", "c"] }
hash.values #=> [["a","b","c"],["b","c"]]
Run Code Online (Sandbox Code Playgroud)