Je pense que c'est écrit dans un livre de référence, mais au lieu d'un mémorandum.
Lorsque vous souhaitez séparer un tableau contenant plusieurs éléments tels que les suivants avec un tableau associatif
array = [1, 2, "a", 3, "b", "c", 4]
ideal_hash = {
hoge: [1, 2, 3, 4],
fuga: ["a", "b", "c"]
}
ideal_hash = { hoge: [], fuga: [] }
array.each do |i|
i.is_a?(Integer) ? hash[:hoge] << i : hash[:fuga] << i
end
Étant donné que la méthode tap renvoie le self généré, je peux l'écrire proprement et je veux l'utiliser autant que possible.
ideal_hash = { hoge: [], fuga: [] }.tap do |hash|
array.each do |i|
i.is_a?(Integer) ? hash[:hoge] << i : hash[:fuga] << i
end
end
Recommended Posts