简体   繁体   English

Ruby-将具有数组值的Hash转换为哈希数组

[英]Ruby - Convert Hash with array values to array of hashes

Let's say I have this hash: 假设我有此哈希:

def aliases
  {
    blond: [
      'dark blond',
      'dirty blond',
      'honey blond',
      'sandy blond',
      'stawberry blond'
    ],
    brown: [
      'dark brown',
      'light brown'
    ],
    gray: [
      'grey'
    ]
  }
end

What is the most elegant way to convert it to: 将其转换为以下内容的最优雅的方法是:

[ { blond: 'dark blond' }, { blond: 'dirty blond' }, { brown: 'dark brown' } ... ]
aliases.flat_map { |k,v| v.map { |s| { k=>s } } }
  #=> [{:blond=>"dark blond"}, {:blond=>"dirty blond"}, {:blond=>"honey blond"},
  #    {:blond=>"sandy blond"}, {:blond=>"stawberry blond"}, {:brown=>"dark brown"},
  #    {:brown=>"light brown"}, {:gray=>"grey"}] 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM