我在Ruby中有一个元素数组
[2,4,6,3,8]
例如,我需要删除值为3的元素
我怎么做呢?
我在Ruby中有一个元素数组
[2,4,6,3,8]
例如,我需要删除值为3的元素
我怎么做呢?
当前回答
假设你想在数组的多个位置按值删除3, 我认为ruby执行这个任务的方法是使用delete_if方法:
[2,4,6,3,8,3].delete_if {|x| x == 3 }
你也可以使用delete_if来删除'array of arrays'场景中的元素。
希望这能解决你的疑问
其他回答
我想我明白了:
a = [3, 2, 4, 6, 3, 8]
a.delete(3)
#=> 3
a
#=> [2, 4, 6, 8]
我不确定是否有人已经声明了这一点,但Array.delete()和-= value将删除数组中传递给它的每个值的实例。为了删除特定元素的第一个实例,您可以执行如下操作
arr = [1,3,2,44,5]
arr.delete_at(arr.index(44))
#=> [1,3,2,5]
有一种更简单的方法。我并不是说这是最佳实践,但这是应该被认可的。
借用Travis的评论,这是一个更好的答案:
我个人喜欢[1,2,7,4,5]-[7],结果=>[1,2,4,5]从irb
我修改了他的答案,因为3是他示例数组中的第三个元素。对于那些没有意识到3在数组中的位置2的人来说,这可能会导致一些困惑。
假设你想在数组的多个位置按值删除3, 我认为ruby执行这个任务的方法是使用delete_if方法:
[2,4,6,3,8,3].delete_if {|x| x == 3 }
你也可以使用delete_if来删除'array of arrays'场景中的元素。
希望这能解决你的疑问
首次发生的无损清除:
a = [2, 4, 6, 3, 8]
n = a.index 3
a.take(n)+a.drop(n+1)