Ordenando Arrays em Ruby

Hey, como vai?!

Bem, hoje quero falar de métodos de ordenação, mas nada complicado demais, OK?!

O Ruby tem em si um método embutido, chamado sort, podendo ser in place (no mesmo objeto) ou não. Este, por padrão, ordena de forma crescente:

array#sort

Mas também aceita, como parâmetro, a maneira que deverá ser feita a ordenação. Facilitando todo nosso processo: array#sort2.png

Aqui temos algo diferente e que será abordado em breve, o spaceship operator, que basicamente  compara a variável a esquerda com a à direita. Tirando isso, nada de novo, certo?

Vamos a outro exemplo, dessa vez usando somente uma variável para comparação:

Screenshot from 2017-03-13 16-19-29

Neste também temos algo novo: %w, um delimitador especial do Ruby, mostrado uma vez no post terceiro post da série Vetores e Vetores, responsável por fazer um array somente de palavras (strings), onde as mesmas são separadas por espaço.


SORT_BY

Para finalizar, o temos o método sort_by , que em sua implementação transforma cada elemento do vetor em um outro temporário, contendo índice e valor correspondente.

Dado sua forma de funcionamento, seu custo é alto, mas necessário na ordenação de Hashes, tópico de próximo assunto em nosso blog:

array = []
hash1 = {:name => "john", :age => 23}
hash2 = {:name => "tom",  :age => 45}
hash3 = {:name => "adam", :age => 3}

array.push(hash1, hash2, hash3)

res = array.sort_by { |item| item[:name] }

puts res

Saída:

[{:name=>”adam”, :age=>3},
{:name=>”john”, :age=>23},
{:name=>”tom”, :age=>45}]


Assim deixo como teste a vocês: tentem usar o método sort sobre o último exemplo, algum erro é gerado? Deixe nos comentários a sua resposta!

Até mais!!

Thanks to: How to Sort a Hash in Rubyruby sort_by methodRuby Doc: ArrayApiDock – Sort by
Anúncios
Publicado em: Ruby

2 comentários sobre “Ordenando Arrays em Ruby

Diga alguma coisa ... suas dúvidas quem sabe!

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s