Récupère le premier élément d'un tableau Ruby dans un hachage
J'ai un Rubis de hachage qui ressemble à ceci:
h = {"side1"=>["green", "Green"], "side2"=>["verde", "Verde"]}
Comment puis-je obtenir le premier (ni le dernier) à un particulier de clé dans la table de hachage?
source d'informationauteur Andrew
Vous devez vous connecter pour publier un commentaire.
En fait, votre exemple de pseudo-code dans votre question est correcte.
Pour votre hash
les touches sont
'side1'
et'side2'
(avec leurs valeurs à droite de la hashrocket)Donc,
h['side2'].first
dit que pour la valeur de la clé de'side2'
obtenir le premier élément de la valeur["verde", "Verde"]
qui est un tableau.h['side2'][0]
serait aussi travailler. l'aliasfirst
est une méthode de convenance.Pour obtenir le dernier élément d'un tableau sans avoir à connaître comment elle est grande, l'utilisation d'un indice négatif. par exemple,
h['side2'][-1]
ce qui est équivalent àh['side2'][1]
dans ce cas.Noter que les clés dans une table de hachage sont notamment quant à savoir si c'est une chaîne ou d'un symbole. C'est
h[:side2]
serait de retour est nul, la clé n'a pas été définie. Rails a une classeHashWithIndifferentAccess
qui traite les symboles et les chaînes de caractères comme l'équivalent des touches.MODIFIER
Je devrais avoir mentionné que j'ai testé ma réponse dans
irb
.irb
est un excellent moyen de tester vos idées sur ce qui peut et ne peut pas fonctionner. Dans votre invite de terminal, tapezirb
entrer et jouer avec ruby.J'ai couru dans une situation similaire où j'ai arbitrairement voulait la "première" à l'entrée de la valeur de hachage pour certains le code de test. Ce n'est pas exactement ce que cette question est à propos, mais il est venu dans la recherche, j'ai couru si la figure, il pourrait faire de même pour les autres.
De cours "premier élément" est arbitraire dans une table de hachage, mais la méthode de clés, vous obtiendrez une liste de toutes les clés triés par quelque magie. Si vous aimez ce genre de commande, alors vous pouvez obtenir la "première" méthode avec
De hachage a des clés et des valeurs
vous pouvez tout simplement faire
De sorte que vous aurez le tableau de valeurs que vous voulez dans le cas de la première ou de la dernière
Oui.
puts h["side2"].first
devrait fonctionner. Je suppose que cela montre que Ruby suit le principe de moindre surprise, où votre pseudo-code s'est avéré être le même que le code réel. 🙂