ruby如何排序这个Hash of Arrays [关闭]

问题描述 投票:-5回答:1

如何对以下数组进行排序:具有最高位置:local_totals从最高到最低。在我的视图页面上,我遍历这个数组并完全按照我想要的方式显示数据,但是现在我想将它们从最高位置本地总数排序到最低位置。这可能是以下格式吗?

@summaries = [{:time_frame=>"Today", :locations=>["Tampa", "Atlanta", "California", "Georgia", "South Lake Union"], :local_totals=>[100000, 30000, 70000, 50000, 60000], :expenses=>[2000, 10000, 4000, 6000, 5000]}] 

我试图以许多不同的方式使用标准的ruby sort_by方法,但是没有成功。

ruby-on-rails ruby arrays hash
1个回答
0
投票

看起来是你实际上有一个包含一些数组的哈希。清理它我认为应该看起来像这样:

hash = {:time_frame=>"Today", :locations=>["Tampa", "Atlanta", "California", "Georgia", "South Lake Union"], :local_totals=>[10000.0, 30,000, 70000, 50000, :expenses=>[2000, 10000, 4000, 6000]}

假设这是正确的,你可以做这样的事情来解决你的问题:

hash[:locations].zip(hash[:local_totals]).sort_by(&:last)

这假设阵列中的位置匹配。

我意识到,通过回答这个问题,我鼓励不好的问题,但这是我看到它并想知道我如何解决它的情况之一,然后我想我也可以发布我的解决方案。 :)

时间:)

或者如果你想按照书面解决它:

@summaries[0][:locations].zip(@summaries[0][:local_totals]).sort_by(&:last).reverse
© www.soinside.com 2019 - 2024. All rights reserved.