我在Ruby中有一个元素数组
[2,4,6,3,8]
例如,我需要删除值为3的元素
我怎么做呢?
我在Ruby中有一个元素数组
[2,4,6,3,8]
例如,我需要删除值为3的元素
我怎么做呢?
当前回答
你可以简单地运行:
[2,4,6,3,8].delete(3)
其他回答
我改进了尼尔斯的解决方案
class Array
def except(*values)
self - values
end
end
现在你可以使用
[1, 2, 3, 4].except(3, 4) # return [1, 2]
[1, 2, 3, 4].except(4) # return [1, 2, 3]
假设你想在数组的多个位置按值删除3, 我认为ruby执行这个任务的方法是使用delete_if方法:
[2,4,6,3,8,3].delete_if {|x| x == 3 }
你也可以使用delete_if来删除'array of arrays'场景中的元素。
希望这能解决你的疑问
如果你还想让这个删除操作具有可链性,这样你就可以删除一些项并继续在结果数组上进行链接操作,请使用tap:
[2, 4, 6, 3, 8].tap { |ary| ary.delete(3) }.count #=> 4
我想我明白了:
a = [3, 2, 4, 6, 3, 8]
a.delete(3)
#=> 3
a
#=> [2, 4, 6, 8]
首次发生的无损清除:
a = [2, 4, 6, 3, 8]
n = a.index 3
a.take(n)+a.drop(n+1)