2012-06-01 83 views
0

我有一個數組可以具有N個嵌套的陣列,其中N可包含中號陣列,其中N和M的> = 1的一些實例包括以下:確保在嵌套紅寶石獨特元件陣列

[[[1,2,3],[3,4,5]],[[2,1,1]]] 

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

最後

[[[1,2,3],[3,4,5]],[[2,1,1]], [[1,1,1],[2,2,2]]] 

我需要的東西,返回一個true或者如果有假是一個嵌套數組中元素的重複值,問題是組合數組不是唯一標識符。在這種情況下,每個值數組(如[1,2,3][3,4,5])中只有元素13,這些都是我需要的唯一對象。所以在最後一個數組的情況下,[1,1,1][1,2,3]會衝突,因爲重複了1

什麼是迭代通過這種類型的嵌套和信號truefalse是否有重複的最好方法是什麼?

+1

'陣列#uniq'不返回true或false – fl00r

+0

我不能完全肯定我得到正是你需要的,但如果我是正確的,那麼怎麼樣: '元素= [[[1 ,2,3],[3,4,5],[[2,1,1]],[[1,1,1],[2,2,2]]]。map(&:first) .map(&:first)' then 'elements.length == elements.uniq.length' –

+1

您確定您使用的是正確的數據結構嗎? –

回答

0
def uniq_prime_elements?(arr) 
    prime_elements = arr.map(&:first).map(&:first).compact 
    prime_elements.length == prime_elements.uniq.length 
end