2011-10-25 76 views
4

删除“空”的元素我有一个多维数组像这样从多维数组

[ [[]], [[1], [2]], [[1, 2]] ] 

什么是去除空数组的最佳方式?

现在我只是在做一个array[1..-1]删除第一个元素,但我想要一个更可靠的方法来做到这一点。

+0

你想用'[[[],[1]],[[1],[2]]]做什么? –

+0

@ muistooshort注意你的数组与我的不同。我会将它与其他数组进行比较以找到最短的子字符串。我通过做一些像'ar.each_index.map {| i | ar.combination(i).to_a' – Brand

+0

所以你说你不能把'[[],[1]]作为一个元素?我只是想澄清你的数据真的是什么样子。 –

回答

8

展平每个数组,如果它没有任何元素,删除它。

arr = [ [[]], [[1], [2]], [[1, 2]] ] 
arr = arr.delete_if { |elem| elem.flatten.empty? } 
# => [[[1], [2]], [[1, 2]]]