1

我是 Ruby 新手(和一般编程),并且一直在阅读大量文档、操作方法和 SO 问题,试图找到这个问题的答案,但到目前为止还没有运气。

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

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

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

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

提前致谢!

4

2 回答 2

1

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

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

祝你好运。

于 2012-06-11T03:24:49.917 回答
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]

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

于 2012-06-10T17:48:01.283 回答