Il me manque probablement quelque chose d'évident, mais existe-t-il un moyen d'accéder à l'index/au compte de l'itération dans un hachage à chaque boucle?
hash = {'three' => 'one', 'four' => 'two', 'one' => 'three'}
hash.each { |key, value|
# any way to know which iteration this is
# (without having to create a count variable)?
}
Si vous aimez connaître l'index de chaque itération, vous pouvez utiliser .each_with_index
hash.each_with_index { |(key,value),index| ... }
Vous pouvez parcourir les clés et extraire les valeurs manuellement:
hash.keys.each_with_index do |key, index|
value = hash[key]
print "key: #{key}, value: #{value}, index: #{index}\n"
# use key, value and index as desired
end
EDIT: par commentaire de rampion, je viens aussi d'apprendre que vous pouvez obtenir à la fois la clé et la valeur sous forme de tuple si vous parcourez hash
:
hash.each_with_index do |(key, value), index|
print "key: #{key}, value: #{value}, index: #{index}\n"
# use key, value and index as desired
end