110 votes

Ruby de Hachage pour tableau de valeurs

J'ai ceci:

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

et je veux arriver à ceci: [["a","b","c"],["b","c"]]

Cela semble comme il devrait fonctionner, mais il n'a pas:

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

Toutes les suggestions?

246voto

Ray Toal Points 35382

Aussi, un peu plus simple....

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

Ruby doc ici

41voto

Michael Durrant Points 30342

Je voudrais utiliser:

hash.map { |key, value| value }

21voto

Jergason Points 7748
hash.collect { |k, v| v }
#returns [["a", "b", "c"], ["b", "c"]] 

Enumerable#collect prend un bloc, et retourne un tableau des résultats de l'exécution du bloc une fois sur chaque élément de l'énumération. Donc ce code ignore juste les touches et retourne un tableau de toutes les valeurs.

L' Enumerable module est assez impressionnant. Sachant que ça peut bien vous faire économiser beaucoup de temps et beaucoup de code.

7voto

mrded Points 228

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

de hachage.les valeurs de # [["a","b","c"],["b","c"]]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X