非破坏性地从数组中删除元素
Removing elements from an array non-destructively
给定一个数组 arr
和一个对象 v
,我想要一个 arr
的副本,其中的元素不等于 v
。
我找到了这两个解决方案:
newarr = arr.dup
newarr.delete(v)
和
newarr = arr.reject {|a| a == v}
有更简单的方法吗?
我想知道 Ruby 是否已经有类似的东西:
newarr = arr.without(v)
[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]
给定一个数组 arr
和一个对象 v
,我想要一个 arr
的副本,其中的元素不等于 v
。
我找到了这两个解决方案:
newarr = arr.dup
newarr.delete(v)
和
newarr = arr.reject {|a| a == v}
有更简单的方法吗?
我想知道 Ruby 是否已经有类似的东西:
newarr = arr.without(v)
[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]