2
words.delete_if do |x|
  x == ("a"||"for"||"to"||"and")
end

words多くの単語を含む配列です。私のコードは「a」を削除していますが、「for」、「to」、「and」は削除していません。

4

3 に答える 3

8

これがあなたを助けるかもしれません

words.delete_if do |x|
  %w(a for to and).include?(x)
end
于 2012-10-19T07:35:00.477 に答える
7

やるだけ

words - ["a", "for", "to", "and"]

words = %w(this is a just test data for array - method and nothing)
 => ["this", "is", "a", "just", "test", "data", "for", "array", "-", "method", "and", "nothing"] 
words = words - ["a", "for", "to", "and"]
 => ["this", "is", "just", "test", "data", "array", "-", "method", "nothing"] 
于 2012-10-19T07:34:52.127 に答える
5

"a" || を実行すると irb で "b" を使用すると、常に "a" が返されます。これは、null 値ではなく、|| によって返されるためです。常に..あなたの場合、「a」||「for」は、配列内の他の値に関係なく、常に「a」として評価されます..だから、これはあなたの質問に対する私の代替ソリューションです

w = %W{a for to end}

言葉.拒否! { |x| w.include?(x) }

于 2012-10-19T07:40:42.567 に答える