我有以下代码:
[{"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}]
我该怎么做?
使用 Enumerable#sort_by
执行以下操作:
hsh.sort_by{|h| h['day'] }
您可以将块传递给数组上的 #sort。
array.sort do |a, b|
a[:day] <=> b[:day]
end
这将迭代您的哈希并使用您的:day
密钥进行比较。
附言我会在您的数组中使用更好的符号语法。
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"] }
但你的原件应该是{"天" =>3, "计数" =>4.75}