开发者社区> 问答> 正文

如何按哈希中的值对哈希数组进行排序?

这段Ruby代码的行为并不像我期望的那样:

create an array of hashes

sort_me = [] sort_me.push({"value"=>1, "name"=>"a"}) sort_me.push({"value"=>3, "name"=>"c"}) sort_me.push({"value"=>2, "name"=>"b"})

sort

sort_me.sort_by { |k| k["value"]}

same order as above!

puts sort_me 我正在寻找通过键“值”对哈希数组进行排序的方法,但它们是按未排序方式打印的。 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 10:16:03 462 0
1 条回答
写回答
取消 提交回答
  • Ruby sort不会就地排序。(也许您具有Python背景?)

    Ruby具有sort!就地排序功能,但没有的就地变体sort_by。在实践中,您可以执行以下操作:

    sorted = sort_me.sort_by { |k| k["value"] } puts sorted

    2020-02-08 10:16:15
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载