給定一個散列數組,我想創建一個返回散列值的方法,其中的鍵是數組中散列的唯一值。從ruby數組中獲取獨特的屬性
例如,我想借此
[
{foo: 'bar', baz: 'bang'},
{foo: 'rab', baz: 'bang'},
{foo: 'bizz', baz: 'buzz'}
]
,並返回
{
foo: ['bar', 'rab', 'bizz'],
baz: ['bang', 'buzz']
}
我目前完成這個使用:
def my_fantastic_method(data)
response_data = { foo: [], baz: []}
data.each { |data|
data.attributes.each { |key, value|
response_data[key.to_sym] << value
}
}
response_data.each { |key, value| response_data[key] = response_data[key].uniq }
response_data
end
是否有更優雅的方式這樣做?謝謝!
唯一問心無愧你的代碼真正的問題是有一個硬編碼'foo'和'bar',並呼籲'它uniq'之前建立一個大陣的潛在性能成本。這些問題在你的應用程序中有重要意義嗎 –
這是紅寶石!如果你的代碼長度超過一行,那*就是一個真正的問題。 – eiko