特定元素返回數組我看了真的很難在http://www.ruby-doc.org/core-2.1.2/Array.html但我無法找到一個快速的功能,此行爲:沒有紅寶石
arr = [1,2,3,4,5,6]
arr.without(3,6) #=> [1,2,4,5]
我知道我可以寫我自己的函數/猴子補丁紅寶石/添加一個類的方法/寫在幾行。
有沒有辦法以紅寶石方式做到這一點?
特定元素返回數組我看了真的很難在http://www.ruby-doc.org/core-2.1.2/Array.html但我無法找到一個快速的功能,此行爲:沒有紅寶石
arr = [1,2,3,4,5,6]
arr.without(3,6) #=> [1,2,4,5]
我知道我可以寫我自己的函數/猴子補丁紅寶石/添加一個類的方法/寫在幾行。
有沒有辦法以紅寶石方式做到這一點?
你可以用減法:
arr - [3,6]
編輯
,如果你真的想你可以別名此方法
class Array
alias except -
end
那麼你可以使用:
arr.except [3,6]
還有另外一種使用reject
的方法。但它並不比-
arr.reject{|x| [3,6].include? x}
這讓Rails中添加清潔劑5 :)
https://github.com/rails/rails/issues/19082
module Enumerable
def without(*elements)
reject { |element| element.in?(elements) }
end
end
它只是美觀,但它是有道理的大腦
我m知道數組減法,有沒有更乾淨的方法來做到這一點? –
對我來說看起來很乾淨! –
是的,我使用它很多,如果沒有其他方式我會使用它,謝謝 –