开发者社区 问答 正文

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

这段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 491 分享 版权
1 条回答
写回答
取消 提交回答
  • Ruby sort不会就地排序。(也许您具有Python背景?)

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

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

    2020-02-08 10:16:15
    赞同 展开评论
问答分类:
问答地址: