Ruby: Como posso fazer esses objetos iguais?
Pergunta
Então, eu tenho os seguintes hashes/matrizes:
{"number"=>[{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}, {"tracking"=>"9102901001301227214058"}]}
{"number"=>{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}}
Esse primeiro hash tem uma matriz para number
enquanto o segundo não.
Está causando estragos tentando percorrer os dados (especificamente quando há apenas uma combinação de rastreamento/notas).
Em última análise, estou querendo ser capaz de fazer um each
Loop em cada combinação de rastreamento/notas.
Solução
h1={"number"=>[{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}, {"tracking"=>"9102901001301227214058"}]}
h2={"number"=>{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}}
[h1["number"]].flatten
=> [{"notes"=>"Example note", "tracking"=>"1Z81E74W0393736553"}, {"tracking"=>"9102901001301227214058"}]
[h2["number"]].flatten
=> [{"notes"=>"Example note", "tracking"=>"1Z81E74W0393736553"}]
Agora, cada um será uma variedade de hashes e você pode usar each
para iterar através deles.
Outras dicas
Algo assim?
hash["number"] = [ hash["number"] ] unless hash["number"].kind_of?(Array)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow