Para dividir una matriz en dos trozos iguales Me gustaría hacer esto,RoR/Ruby eliminar elementos nulos de matriz anidada
>> a = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
>> a.in_groups_of((a.size/2.0).ceil) if a.size > 0
=> [[1, 2, 3], [4, 5, nil]]
ahora tengo una matriz anidada que contiene elementos nil si el tamaño de la matriz es impar. ¿Cómo puedo eliminar los elementos nil de las matrices anidadas? Quiero hacer algo así,
a.compact
Pero, por desgracia que no funciona, rubí sólo elimina los elementos nulos en el primer nivel y no de forma recursiva. ¿Ruby proporciona alguna buena solución para este problema?
Pensé que la sintaxis & se introdujo en 1.8.7 – EmFi
@EmFi Buen punto - Olvidé 1.8.7. Editaré mi respuesta. –
También puede usar 'a.map (&: compact)' – Bongs