Ruby通过多维数组进行搜索



学习Ruby代码的美妙之处,我想知道是否有一个简单/直接的多维数组内搜索。我有一个包含4个索引的多数组,包含各种数字。我想搜索虽然每个索引匹配的内容对另一个数组…seudo codez

multi_array = [ [1,3,7], [3,1,4], [1,3,4], [0,9,2]]
numbers_looking_to_match = [1,5,9]
multi_array.each do | elmt |
  elmt.each_with_index do |elmt, idx|
    if elmt == numbers_looking_to_match.each { |e| puts "match" }
  end 
end

我希望这返回一个新的多数组与所有不匹配的字符删除原来的多数组。

使用Array#&进行交叉,

multi_array.map {|a| a & numbers_looking_to_match }

multi_array.each { |elem| numbers_looking_to_match.each { |x| elem.delete(x) if elem.include?(x)}}

清除每个元素中不需要的字符:

require 'set'
multi_array=[ [1,3,7], [3,1,4], [1,3,4], [0,9,2]]
numbers_looking_to_match=Set.new([1,5,9])
scrubbed=multi_array.collect{ |el|
  numbers_looking_to_match.intersection(el).to_a
}
puts scrubbed.inspect
# prints [[1], [1], [1], [9]]

相关内容

  • 没有找到相关文章

最新更新