2016-01-21 86 views
-2

我想將兩個陣列,regplatesdistance,從speeders內彼此相鄰分開,並將它們輸出:如何從Ruby中的數組中分離兩個數組?

require 'date' 
# Variables and Constants. 
speeders = Array.new 
DISTANCE = 10 
LIMIT = 70 
MINTIME = DISTANCE/LIMIT 

# Recieving input of regplate + Checking if they are speeding. 
def calculations(speeders) 
    puts "Please input your registration plate:" 
    puts "Type 'stop' to stop." 
    loop do 
    regplate = gets.chomp 
    break if regplate == 'stop' 
    now = Time.now 
    time1 = DateTime.strptime("13:22:45","%H:%M:%S") 
    time2 = time1 + (rand(10)/(24.0 * 60)) 
    elapsed_time = time2 - time1 
    if elapsed_time >= MINTIME 
     speeders << [regplate, DISTANCE/elapsed_time.to_f] 
    end 
    end 
return speeders 
end 

# Outputting the speeders with their mph. 
def speeder_output(speeders) 
    speeders.each do |regplate| 
    printf("%s %i",regplate, DISTANCE) 
    end 
end 

speeders = calculations(speeders) 
speeder_output(speeders) 
+3

不要粘貼很長的一段代碼。發佈陳述您的問題所需的最低限度。 – sawa

+0

對不起,第一次,不知道那是禮儀 - 如果你能回答我的問題,那會很有幫助。 – kt0001

+2

總是開始一個問題,並解釋你想達到的目標。如果可能,請包含一個帶有輸入值的小例子並顯示您所需的輸出。 (一個變量應該被分配給每個輸入,因此讀者可以剪切並粘貼,並在答案和註釋中引用這些變量。)只有呈現代碼並詢問爲什麼它不起作用。當你有時間時,請看[SO faq](http://stackoverflow.com/help)。 –

回答

2

如你認識到的,該陣列是數組的數組。您可以輸出子數組的每個元素。

# Outputting the speeders with their mph. 
def speeder_output(speeders) 
    speeders.each do |reg, speed| 
    printf("%s %i",reg, speed) 
    end 
end 
+0

非常感謝:)對不起,格式不對 – kt0001

+0

是的,出色的建議,@CarySwoveland – SteveTurczyn

+2

沒有必要在問題或答案中添加說明你「編輯:」或「更新:」的東西。如有需要,我們有能力查看修訂版。相反,只需進行更改並在最初放置的位置添加新信息即可。這樣想:我們正在編寫一本編程問題和解決方案的食譜。如果我們看一本參考書,它會不會充滿「編輯」和「更新」? –