1

配列を減算するとき、最初の一致のみを削除したい。

例えば

[1,2,3,4,4,4,4,5,5]-[1,2,3,4] # => [5,5]

しかし、私は必要です:

[4,4,4,5,5]

もう一つの例:

[1,2,3,4,4,4,4,5,5]-[1,2,3,5] # => [4, 4, 4, 4]

しかし、結果は次のようになります。

[4,4,4,4,5]

これを行う方法はありますか?

4

2 に答える 2

2
def remove(array, rejects)
  array = array.dup
  rejects.each {|item| array.delete_at(array.index(item))}
  array
end

使用法:

remove([1,2,3,4,4,4,4,5,5], [1,2,3,4])                                                                                                                                                                                     
 => [4, 4, 4, 5, 5]                                                                                                                                                                                                                         
remove([1,2,3,4,4,4,4,5,5], [1,2,3,5])                                                                                                                                                                                     
 => [4, 4, 4, 4, 5]                                                                                                                                                                                                                         

incompatible で呼び出さないrejectsか、メソッドにエラー処理を追加するかはあなた次第です。

于 2013-04-11T07:36:24.840 に答える