我在Ruby中有一个元素数组

[2,4,6,3,8]

例如,我需要删除值为3的元素

我怎么做呢?


当前回答

另一个选择:

a = [2,4,6,3,8]

a -= [3]

结果是

=> [2, 4, 6, 8] 

其他回答

首次发生的无损清除:

a = [2, 4, 6, 3, 8]
n = a.index 3
a.take(n)+a.drop(n+1)

你可以简单地运行:

[2,4,6,3,8].delete(3)

我喜欢在其他答案中提到的-=[4]方式来删除值为4的元素。

但有这样一种方法:

[2,4,6,3,8,6].delete_if { |i| i == 6 }
=> [2, 4, 3, 8]

在“基本数组操作”中提到的map函数之后。

如果你还想让这个删除操作具有可链性,这样你就可以删除一些项并继续在结果数组上进行链接操作,请使用tap:

[2, 4, 6, 3, 8].tap { |ary| ary.delete(3) }.count #=> 4

另一个选择:

a = [2,4,6,3,8]

a -= [3]

结果是

=> [2, 4, 6, 8]