2013-02-27 2 views
0

J'ai un hachage {: a => b} et je veux ajouter une valeur à cette clé et le transformer en un tableau de valeurs en gardant le précédent.Ruby Hash Valeur dans tableau de valeurs

Ainsi, le résultat serait {: a => [b, c]}

Y at-il une meilleure façon de le faire que le hachage itérer?

+1

Non :-) Vous devez quand même itérer, alors quelle est votre question? "Quel est le moyen le plus court pour atteindre ..."? – mliebelt

Répondre

4

Essayez ceci.

h = {a: b} 
h[:a] = ((a[:a].is_a? Array) ? a[:a] : [a[:a]]) << c 
+0

La question initiale ne mentionne pas si 'b' pourrait être déjà un tableau. Si c'est possible, vous pouvez ajouter un chèque. –

+0

@DaveS. Pensé à ce sujet. Mettra à jour la réponse –

0

solution simple serait de créer une table de hachage de tableaux:

h = {} 
h[:a] = [] 
h[:a].push(b) 
h[:a].push(c) 

Ce que je veux dire: Même s'il n'y a qu'une seule valeur utiliser un tableau. Cela rend la manipulation plus facile.

Questions connexes