Ruby搜索多维数组并删除元素

时间:2014-03-25 10:22:43

标签: ruby-on-rails ruby multidimensional-array

任何人都可以帮我吗?这是我的问题:   我需要搜索三维或四维数组并从中删除元素。

注意:必须保留订单

示例数组:

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

我想删除带有子串' cat'的元素。所以预期的结果是:

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

1 个答案:

答案 0 :(得分: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)