我有以下代码:
[{"day":3,"count":4.75},{"day":1,"count":5.5},{"day":2,"count":3.0},{"day":4,"count":5.0},{"day":5,"count":7.2},{"day":6,"count":7.666666666666667},{"day":0,"count":6.75}]
我希望按“日期”键值对这个哈希列表进行排序。
最终输出应如下所示:
[{"day":0,"count":6.75},{"day":1,"count":5.5},{"day":2,"count":3.0},{"day":3,"count":4.75},{"day":4,"count":5.0},{"day":5,"count":7.2},{"day":6,"count":7.666666666666667}]
我该怎么做?
答案 0 :(得分:1)
使用Enumerable#sort_by
执行以下操作:
hsh.sort_by{|h| h['day'] }
答案 1 :(得分:0)
a = [{"day":3,"count":4.75},{"day":1,"count":5.5},{"day":2,"count":3.0},{"day":4,"count":5.0},{"day":5,"count":7.2},{"day":6,"count":7.666666666666667},{"day":0,"count":6.75}]
a.sort{|x,y| x["day"] <=> y["day"] }
但你的原件应该是 {“day”=&gt; 3,“count”=&gt; 4.75}
答案 2 :(得分:0)
您可以将块传递给阵列上的#sort。
array.sort do |a, b|
a[:day] <=> b[:day]
end
这将迭代您的哈希并使用您的:day
键进行比较。
P.S。我会在你的数组中使用更好的符号语法。