2009/10/6 Lucas Sallovitz <[email protected]>: > 2009/10/6 Porta <[email protected]> >> >> Buenas. >> Tengo un problemita que me esta trastornando y no le encuentro la vuelta. >> > > Algo así: > > arrays_obligatorios = { { }, { }, ... } > arrays_opcionales = { { }, { }, ...} > > n = arrays_opcionales.size ^ 2 > i = de 0 a n > arrays = arrays_obligatorios + arrays_opcionales.filter { el bit de i > correspondiente al índice es 1 } > resultado << arrays.producto_cartesiano
Yo usaría Array#product combinado con una pisadita para los opcionales: agregale a los opcionales un elemento nil. Después tenés a.product(b, c, d), y vas a tener los arrays armaditos, con un nil donde no va nada porque es opcional, y ahí le hacés un map(&:compact) y chau. -- Nacho Facello :wq _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
