过滤掉导致错误的数组值

时间:2017-07-11 19:29:26

标签: ruby-on-rails ruby

基本上我有2个数据结构。为简单起见,我们假设它们都是一维数组。假设所有函数都已正确定义,我想做一些像

这样的事情
Array1.delete_if(Array2.find(element in array 1) results in error)

我不知道如何处理这个问题。我已尝试过救援声明等等,但我最终还是犯了错误。是否有一种有效且简单的方法可以根据方法调用是否导致错误来过滤掉数组中的元素?

感谢。

2 个答案:

答案 0 :(得分:2)

你要找的是这个,然后:

array1.delete_if do |e|
  array2.find(e) and false

rescue
  true
end

在调用find时会删除导致异常的任何内容。

答案 1 :(得分:0)

过滤元素的正确方法是:

first_array - second_array

如果您想从另一个中找到任何元素,则提出错误:

raise 'error' unless (first_array & second_array).empty?

上次尝试:

first_array.select { |element| condition_with_second_array(element) rescue false }