Per dividere una serie in due parti uguali farei questo,RoR/Rubino eliminare elementi nil da array nidificato
>> 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]]
ora ho un array nidificato che contiene gli elementi nulli se la dimensione della matrice è strano Come posso rimuovere gli elementi nil dagli array annidati? Voglio fare qualcosa di simile,
a.compact
Ma purtroppo che non funziona, rubino rimuove solo gli elementi nulli sul primo livello, e non in modo ricorsivo. Ruby fornisce qualche buona soluzione per questo problema?
Ho pensato che la sintassi & è stata introdotta in 1.8.7 – EmFi
@EmFi Buon punto - Mi stavo dimenticando 1.8.7. Modificherò la mia risposta. –
Puoi anche usare 'a.map (&: compact)' – Bongs