我有一個數組。我需要保留除索引0之外的所有元素。我的大腦在此刻被炸。我一直在編程。任何幫助將是驚人的。謝謝!Ruby刪除數組的第一個索引
回答
使用Array#shift
方法,它正是你想要的:
a = [1, 2, 3]
a.shift # => 1
a # => [2, 3]
你可以只使用數組索引切片:
some_array[1..-1]
,或者,如果你想永久改變一個變量,howsabout:
some_array = [1,2,3,4]
some_array.delete_at(0)
# => 1
some_array
# => [2,3,4]
怎麼樣切片!
一個= [ 「一」, 「B」, 「C」]
a.slice!(0)#=> 「一」
一個#=> [ 「b」 的,「C」]
http://www.ruby-doc.org/core-2.1.0/Array.html#method-i-slice-21
根據怎麼樣將與結果(第一個元素的數組中刪除)有不同的方式來獲得結果,並且將被如何使用做可能影響選擇。
單程原始數組與通過施加方法,忽略方法的結果,實現期望的結果除去第一元素的新的數組的變化,由於所施加的方法的副作用。該OP接受了,他說這樣做(這意味着在他的情況下工作):如果你想生成的數組保存效果很好
a = [ "a", "b", "c" ]
a.shift #=> "a"
a #=> ["b", "c"]
,但你需要的是減少一些方法成鏈的中間現有方法的目的是爲了「擺脫那個第一個數組元素」。但是,在我的情況下,我有一個陣列,其中所述第一元件是由一個系統命令,接着從該命令,一個在每個陣列元件的輸出的幾行產生的標題行,並修改所述線實現我所需的結果時,我意識到標題行需要被刪除,因爲與其餘行不同的形式,它沒有正確處理並且不需要。我原來的代碼行看起來是這樣的(其中再次,a
是數組):
puts a.method1.method2.method3.method4
,我想這樣做:
puts a.method1.method2.removeFirstElement.method3.method4
的一種方法,通過使用slice
做到這一點被證明在一個不同的答案,雖然它並沒有明確表態,它怎麼可能是在某些情況下比接受的答案更好:
puts a.method1.method2.slice(1..-1).method3.method4
如果我以前接受的答案我會公頃已經做這樣的事情:
temp = a.method1.method2
temp.shift
puts temp.method3.method4
除了需要修改原來的代碼結構(儘管也有優點和缺點,這取決於得到了些什麼),有必要創建一個新的臨時對象('臨時')只是爲了得到結果。
很高興知道我們往哪裏去往往會對如何到達那裏產生明確的影響。
(我會注意到,我幾乎喜歡使用的slice!(0)
代替shift
真正改變的陣列,因爲感嘆號清楚地表明該陣列被更改; shift
方法不符合目前建議增加一個感嘆號的方法,將改變一個對象,但是,唉,我可能會使用shift
總之,以避免混亂的(0)
。)
- 1. 刪除數組第一個索引的第一個字符?
- 2. 刪除索引鍵從一個數組
- 3. jQuery刪除數組索引
- 4. 按索引刪除數組
- 5. 從數組中刪除第一級索引php
- 6. 刪除索引方法在第一索引(Java字符串數組)
- 7. 刪除數組中的第一個零
- 8. 刪除整數索引的數組
- 9. Array of Array,根據索引處數組的內容刪除一個索引?
- 10. preg_match_all只返回索引爲0的第一個數組,而不是索引爲1的第一個數組
- 11. 如何刪除第一個數組的某個索引處的所有元素,並從第二個數組中獲取索引?
- 12. 基於一組索引刪除數組的內容
- 13. 使數組的第一個索引prev()返回最後一個索引
- 14. Coffeescript通過索引刪除數組值
- 15. 按索引刪除數組元素
- 16. 數組列表刪除索引
- 17. php數組值刪除索引
- 18. Laravel 5.4數組中刪除鍵索引
- 19. php刪除空數組索引
- 20. Ruby數組刪除vs刪除(bang)
- 21. 刪除索引函數刪除索引前的所有元素
- 22. 數組函數從數組中刪除第一個字符
- 23. 劃分數組索引除下一個索引Java
- 24. 用Ruby中的第一個字母搜索數組?
- 25. 刪除數組索引或創建沒有索引
- 26. 刪除第一級多維數組PHP
- 27. 刪除會話數組中的特定數組索引
- 28. 使用鍵刪除索引數組中的數組元素
- 29. 刪除給定數組中的索引數組
- 30. 索引一個索引數組的多維numpy數組
http://whathaveyoutried.com? – 2012-08-02 17:49:52