【问题标题】:Ruby, sort array of hashes passed by the an specified hash key [closed]Ruby,对指定哈希键传递的哈希数组进行排序[关闭]
【发布时间】:2014-05-30 02:41:41
【问题描述】:

我想通过指定为参数的传递的哈希键对哈希数组进行排序:

array([{'a' => 2}, {'a' => 1}], 'a') => [{'a' => 1}, {'a' => 2}]]

array([{a: 1}, {a: 5}, {a: 3}], :a) => [{a:1}, {a: 3}, {a: 5}]

谢谢

【问题讨论】:

  • 提供的示例是按值而非键排序
  • 是否保证每个hash都有指定的key?如果没有,那些没有钥匙的该怎么办?
  • 您可以通过在示例中包含其他键来澄清您的问题(假设我的理解是正确的)。例如:“对于数组[{a: 2, b: 1}, {a: 1, b: 3}, {a: 3, b: 2}],如果参数是:a,则想要的结果是[{a: 1, b: 2}, {a: 2, b: 1}, {a: 3, b: 2}]. 如果参数是:b,则想要的结果是[{a: 2, b : 1}, {a: 3, b: 2}, {a: 1, b: 3}]"。

标签: ruby arrays hash key


【解决方案1】:
def array(arr, key)
  arr.sort_by { |a| a[key] }
end

【讨论】:

  • 不回答OP的问题,这里的OP是按值排序而不是键,这个问题也很模棱两可
  • @bjhaid,我认为这就是提问者想要做的:对于给定的键,按该键的值对数组进行排序。
猜你喜欢
  • 1970-01-01
  • 2011-10-25
  • 2014-03-05
  • 1970-01-01
  • 1970-01-01
  • 2016-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多