在我的rails应用程序中,我的控制器中有一个循环:
event_prices = []
event_dates = []
for event in @customer.events
event_prices.push(event.total_prices)
event_dates.push(event.event_time.strftime("%b %d, %Y at %I%p"))
end
然后我使用数组将数据推送到highcharts图表中。我想要做的是按顺序排序event_dates
数组,但如果我这样做,我将失去event_prices
的顺序。目前,event_price[1]
对应event_dates[1]
,依此类推,但如果我在sort!
上拨打event_dates
,则不会对event_prices
进行排序
那么我怎样才能得到它以便我以同样的方式对两个数组进行排序?
答案 0 :(得分:4)
最好使用DB进行排序。我会做以下事情:
event_prices, event_dates =
@customer.events(:order => "event_time ASC").map do |e|
[e.total_prices, e.event_time.strftime("%b %d, %Y at %I%p")]
end.transpose
答案 1 :(得分:2)
如下:
event_prices = []
event_dates = []
@customer.events.sort_by { |e| e.event_time }.each do |event|
event_prices << event.total_prices
event_dates << event.event_time.strftime("%b %d, %Y at %I%p")
end