0
A
回答
3
的問題是,insert
改變原始數組:
a = [1,2,3,4,5,6,7,8,9,10]
a.each do |value|
a.insert(value, 3)
p a
end
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # original,^marks current value
#^
# [1, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10] # inserted 3 at position 1
# ^
# [1, 3, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10] # inserted 3 at position 3
# ^
# [1, 3, 3, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10] # inserted 3 at position 2
# ^
# [1, 3, 3, 3, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10] # inserted 3 at position 2
# ^
# [1, 3, 3, 3, 3, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10] # inserted 3 at position 2
# ^
# [1, 3, 3, 3, 3, 3, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10] # inserted 3 at position 2
# ^
# ... # continues forever ...
你可能就要什麼是這樣的:
a = [1,2,3,4,5,6,7,8,9,10]
a.each_index {|index| p a.dup.insert(index, 3) }
# [3, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# [1, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# [1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10]
# [1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10]
# [1, 2, 3, 4, 3, 5, 6, 7, 8, 9, 10]
# [1, 2, 3, 4, 5, 3, 6, 7, 8, 9, 10]
# [1, 2, 3, 4, 5, 6, 3, 7, 8, 9, 10]
# [1, 2, 3, 4, 5, 6, 7, 3, 8, 9, 10]
# [1, 2, 3, 4, 5, 6, 7, 8, 3, 9, 10]
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 3, 10]
each_index
迭代指數,不價值。這可能是這裏要做的正確的事情,因爲insert
將索引作爲第一個參數。dup
在每次迭代中重複數組,因此a
保持不變。
相關問題
- 1. while循環在紅寶石
- 2. 紅寶石嵌套循環
- 3. 如何循環紅寶石中的特定塊
- 4. 極限紅寶石
- 5. 紅寶石模塊
- 6. 區塊紅寶石
- 7. 紅寶石循環與奶奶
- 8. 給。每次循環結束紅寶石
- 9. 紅寶石和嵌套循環
- 10. 紅寶石量和For循環
- 11. 紅寶石每個循環不工作
- 12. 紅寶石傳遞塊塊
- 13. 紅寶石塊和塊
- 14. 「_」紅寶石的參數塊
- 15. 紅寶石的時間塊
- 16. 紅寶石幫助從輸入的文本文件無限循環調試
- 17. 限制紅寶石司機
- 18. 紅寶石optparse限制
- 19. 紅寶石。變量權限
- 20. 紅寶石模塊優化
- 21. 紅寶石混淆塊
- 22. 紅寶石塊調用
- 23. 檢測模塊紅寶石
- 24. 紅寶石模塊聲明
- 25. 行爲紅寶石塊
- 26. 紅寶石線程塊?
- 27. 紅寶石塊到陣列
- 28. 如何紅寶石模塊
- 29. 紅寶石書寫模塊
- 30. 紅寶石 - 塊範圍
你知道'insert'是做什麼的,不是嗎? http://www.ruby-doc.org/core-2.1.3/Array.html#method-i-insert – 2014-09-23 10:01:17
什麼是3的無限循環? – sawa 2014-09-23 10:10:54
它只是繼續打印3一行接着另一個 – 2014-09-23 10:14:29