我試圖從Array
中刪除最小和最大元素對,並將它們存儲在第二個元素中。有沒有更好的方法來做到這一點,或者我不知道有關Ruby方法可以完成這樣的事情?將元素插入到新陣列中,然後從舊陣列中刪除一些元素被忽略
這裏是我的代碼:
nums = [1, 2, 3, 4, 5, 6]
pairs = []; for n in nums
pairs << [n, nums.last]
nums.delete nums.last
nums.delete n
end
當前的結果:
nums
#=> [2, 4]
pairs
#=> [[1, 6], [3, 5]]
預期結果:
nums
#=> []
pairs
#=> [[1, 6], [2, 5], [3, 4]]
一個好的一般原則是不要修改你正在迭代的集合。 –
感謝您的幫助!還有一件事:爲什麼這樣做不好,我仍然不完全確定爲什麼某些數字會被跳過。 –