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

使用するdelete_if

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

これを試して

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

これにより、必要なすべての要素を選択できます

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