2012-06-10 100 views
1

我是Ruby新手(一般編程),並且一直在閱讀大量文檔,操作方法和SO問題以嘗試找到此問題的答案,但沒有運氣遠。將元素索引保存到變量

我有一個整數數組,我試圖將一個對象的整數保存到一個變量,以便以後從該數組中刪除該對象。我到目前爲止:

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

這會刪除數組中的「1」...我希望它刪除「2」來代替。我知道這是因爲讓數組[3]的變量指向「2」而不是數組中的實際第三個元素。我也嘗試了切片方法,無濟於事。

那麼,是否有可能得到一個變量等於一個元素的索引,而不是它的內容?這可能沒有把數組變成散列?

在此先感謝!

+1

'objToDel = 3',no? –

回答

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

爲了保持它在你的話,試試這個:

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

好運。