给定一个数组arr
和一个对象v
,我想要一份arr
的副本,其元素不等于v
。
我找到了这两个解决方案:
newarr = arr.dup
newarr.delete(v)
和
newarr = arr.reject {|a| a == v}
有更简单的方法吗?
我想知道Ruby是否已经有类似的东西:
newarr = arr.without(v)
答案 0 :(得分:9)
[1, 2, 3, 4, 4, 5, 5] - [4]
#⇒ [1, 2, 3, 5, 5]
如果这对您来说太麻烦,请使用:
[1, 2, 3, 4, 4, 5, 5].reject(&4.method(:==))
#⇒ [1, 2, 3, 5, 5]