2014-03-25 99 views
-4

任何人都可以幫助我嗎?這是我的問題: 我需要搜索三維或四維數組並從中刪除元素。紅寶石通過多維數組搜索並刪除元素

注:順序必須保存

例陣列:

[[["tard_cat", "pusheen_cat"], ["boo_dog"]]] 

我想刪除與所述子串 '貓' 的元素。因此,預期的結果將是:

[[[], ["boo_dog"]]] 

回答

7

這應該這樣做:

def deep_remove!(text, array) 
    array.delete_if do |value| 
    case value 
    when String 
     value.include? text 
    when Array 
     deep_remove!(text, value) 
     false 
    else 
     false 
    end 
    end 
end 

array = [[["tard_cat", "pusheen_cat"], ["boo_dog"]]] 
deep_remove!('cat', array) 
+0

+1 ..我喜歡你的方法.. –

+0

嗯我的評論被刪除。無論如何,我會再次發佈。非常感謝你的解決方案。太棒了!我感謝你的幫助:) – cancelledout