2009/9/24 Matías Flores <[email protected]>:
>>> Muy bueno! Y ya que estamos, acá va otra:
>>>
>>> c.each_slice(4).map {|e| e.first}

Dependiendo del tamaño del array  puede que no quieras crear otros
arrays sino simplemente devolver los elementos cuyos indices cumplan
la propiedad deseada.

module Enumerable
  def each_jumping(step)
    0.upto(length / step) { |n| yield self[step * n ] }
  end
end

(0..20).to_a.each_jumping(4) { |n| puts n }

# 0
# 4
# 8
# 12
# 16
# 20

Saludos.


>>>
>>> Saludos,
>>> Matías
>>> >
>>> >
>>> >> Pediste escribir poco, que sea claro es otro precio... <g>
>>> >>
>>
>> esta solucion está buena.
>> en ruby 1.8.6 no funcionó.
>
> Para que funcione en 1.8.6 tenés que hacer lo mismo que hacía Nicolás
> con su solución:
>
> require 'enumerator'
> c.to_enum(:each_slice, 4).map {|e| e.first}
>
> Saludos,
> Matías
>
>> --
>> Gustavo C
>> _______________________________________________
>> Ruby mailing list
>> [email protected]
>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>



-- 
--------------------------------------------------------------
EmmanuelOga.com - Software Developer
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a