配列を減算するとき、最初の一致のみを削除したい。
例えば
[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]
これを行う方法はありますか?
配列を減算するとき、最初の一致のみを削除したい。
例えば
[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]
これを行う方法はありますか?
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
か、メソッドにエラー処理を追加するかはあなた次第です。