将元素索引保存到变量

时间:2012-06-10 17:35:02

标签: ruby arrays variables

我是Ruby的新手(以及一般的编程)并且已经阅读了大量的文档,how-to和SO问题,试图找到这个问题的答案,但到目前为止还没有运气。

我有一个整数数组,我试图将一个对象的整数保存到一个变量中,以便稍后从数组中删除该对象。到目前为止我所拥有的:

array = [3, 5, 1, 2, 6, 9]
objToDel = array[3]
array.delete_at(objToDel)
array

这会删除数组中的“1”...我希望它删除“2”。我知道这是因为将变量指向数组[3]将其指向“2”而不是数组中的实际第三个元素。我尝试过切片方法也无济于事。

那么,是否可以使变量等于元素的索引而不是其内容?如果不将数组转换为哈希值,这可能吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

当然,只需将索引分配给变量:

index = 3
array.delete_at(index) # => 2
array # => [3, 5, 1, 6, 9]

您也可以使用delete方法直接删除对象。

object_to_delete = 2
array.delete(object_to_delete) # => 2
array # => [3, 5, 1, 6, 9]

请注意,这会删除数组中对象的所有实例,这可能不是您想要的。

答案 1 :(得分:1)

用你的话来说,试试这个:

array = [3, 5, 1, 2, 6, 9]
objToDel = 3
array.delete_at(objToDel)
array
祝你好运。