DEV Community

Kelly Cruz
Kelly Cruz

Posted on

Ruby - Conhecendo o método zip

Esses dias estava pesquisando sobre a classe Array em Ruby, e me deparei com um método bem bacana para fazer de maneira menos penosa o merge entre arrays e assim podermos fazer algumas operações com eles.

a = [45, 13, 90]
b = [30, 9, 180]
c = []

a.zip(b) { |x, y| c << (x < y) }
print c
=> [false, false, true]
Enter fullscreen mode Exit fullscreen mode

Nesse bloco de código pergunto se cada elemento do array a é menor do que cada elemento do array b, e salvo a resposta(booleano) dentro do array c.

Podemos também, somar os elementos do array, confiram abaixo:

a = [45, 13, 90]
b = [30, 9, 180]
c = []

a.zip(b) { |x, y| c << (x + y) }
print c
=> [75, 22, 270]
Enter fullscreen mode Exit fullscreen mode

Nesse outro bloco, o processo é o mesmo, no entanto, estamos somando.

Se precisarmos somente mesclar o elementos e inserir novos valores, é simples:

a = [14, 54, 60]
b = [23, 44, 12]

[20, 30, 40].zip(a, b)
print c
 => [[20, 14, 23], [30, 54, 44], [40, 60, 12]]
Enter fullscreen mode Exit fullscreen mode

E é isso, achei interessante e resolvi compartilhar com a comunidade. ;)

Referências:
Ruby-Doc.org

RubyGuides

APIdock

Top comments (0)