Ruby - конвертировать хэш со значениями массива в массив хэшей - PullRequest
0 голосов
/ 21 мая 2019

Допустим, у меня есть этот хэш:

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

Какой самый элегантный способ преобразовать его в:

[ { blond: 'dark blond' }, { blond: 'dirty blond' }, { brown: 'dark brown' } ... ]

1 Ответ

3 голосов
/ 21 мая 2019
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"}] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...