1

我的数组是

 arr = ["wow what", "what anice", "anice day.currently", "day.currently i", "i am", "am in", "in delhi", "delhi but", "but in", "in night", "night i", "i am", "am going", "going to", "to us"]
    arr.each do |el|
     if !el.match('in') && !el.match('is').blank?
      fresh_arr << el
     end

但是我有 110k 元素数组,它给了 8 秒时间,我可以用其他任何方式来做这件事吗

谢谢

4

3 回答 3

3

尝试这个

arr.reject { |i| i.match('in') || i.match('is').blank? }
于 2013-03-21T09:29:19.033 回答
3

利用delete_if

arr.delete_if do |e|
  e.match('in') && e.match('is').blank?
end
arr
于 2013-03-21T09:29:14.650 回答
0

您可以通过执行此操作来选择所需的所有元素

arr.select{|el| !el.match('in') && !el.match('is').blank?}
于 2013-03-21T12:21:10.357 回答