零元素要分割陣列分成相等的兩片,我會做這個,回報率/紅寶石刪除嵌套數組
>> 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]]
現在,我已經有了一個包含零元素嵌套數組如果數組的大小很奇怪。我怎樣才能從嵌套數組中刪除nil元素?我想這樣做,
a.compact
但不幸的是這不起作用,紅寶石僅刪除第一級零元素,而不是遞歸。紅寶石是否爲這個問題提供了很好的解決方案?
我認爲&語法是在1.8.7 – EmFi 2009-11-25 23:57:24
@EmFi中引入的好點 - 我忘記了1.8.7。我會編輯我的答案。 – 2009-11-26 00:01:48
您也可以使用'a.map(&:compact)' – Bongs 2014-07-15 17:09:04