使用Ruby进行多重排序

时间:2018-12-20 09:21:36

标签: ruby sorting array-multisort

我的数据的格式为:

a = [
      {
        "a_id":101,
        "a_value":100000.0,
        "a_quantity":360.0
      },
      {
        "a_id":108,
        "a_value":110000.0,
        "a_quantity":210.0
      },
      {
        "a_id":104,
        "a_value":105000.0,
        "a_quantity":310.0
      }
    ]

我希望数据按a_value的降序排序。我尝试过:

a.sort_by {|k| k[:a_value] }.reverse

但是没有排序。

1 个答案:

答案 0 :(得分:3)

您所拥有的作品。只是不要忘记将已排序的集合分配给变量(sort_byreverse不会更改集合)。

奖金:这可以说是更好的版本(一次通过,而不是两次)

a.sort_by{ |v| -v[:a_value] }