2014-04-15 73 views
-1

我想通过被指定为参数的传递散列键进行排序散列阵列的一个指定的哈希密钥传递散列:红宝石,排序阵列由

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

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

由于

+1

提供的示例是按值排序但不是密钥 – bjhaid

+0

是否保证每个散列都将具有指定的密钥?如果不是,那些没有钥匙的人应该做些什么? –

+0

您可以通过在示例中包含其他键来澄清您的问题(假设我的理解正确)。例如:“对于数组[{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}]“。 –

回答

3
def array(arr, key) 
    arr.sort_by { |a| a[key] } 
end 
+0

没有回答OP的问题,这里的OP是按值排序而不是按键,问题也非常模糊 – bjhaid

+0

@bjhaid,我想这是提问者想要做的事情:对于给定的键,按值排序数组的关键。 –