要将一个数组分成两个相等的部分,我会这样做:
>> 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元素。如何从嵌套数组中删除nil元素?我想做的事情是:
a.compact
不幸的是,这并不起作用,Ruby只会在第一层级别上删除nil元素,而不是递归地删除。 Ruby是否提供了解决此问题的好方法?
a.map(&:compact)
。 - Bongs