[英]How is the best way to merge array of hashes based on same value of some key?
我有一些具有相同鍵的散列。 如下所示:
entities = [
{type: :user, name: 'Tester', phone: '0000-0000'},
{type: :user, name: 'Another User', phone: '0000-0000'},
{type: :company, name: 'A.C.M.E.', phone: '0000-0000'},
{type: :user, name: 'John Appleseed', phone: '0000-0000'},
{type: :company, name: 'Aperture Industries', phone: '0000-0000'}
]
我需要根據某個鍵的值來組織它們,並根據原始哈希(如type
中某個鍵的值生成一個帶有鍵的新哈希。
我這樣做是為了整理:
by_type = {}
entities.each do |entity|
by_type[entity[:type]] ||= []
by_type[entity[:type]] << entity
end
結果我需要:
by_type = {
user: [
{type: :user, name: 'Tester', phone: '0000-0000'},
{type: :user, name: 'Another User', phone: '0000-0000'},
{type: :user, name: 'John Appleseed', phone: '0000-0000'}
],
company: [
{type: :company, name: 'A.C.M.E.', phone: '0000-0000'},
{type: :company, name: 'Aperture Industries', phone: '0000-0000'}
]
}
還有另一種方法或一種優雅的方法來組織此活動嗎?
您可以使用group_by
:
entities.group_by { |entity| entity[:type] }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.