У меня есть ha sh вот так:
hash = {
'en-us': {
where: 'USA'
},
'en-us-zone2': {
where: 'USA'
},
'en-nl': {
where: 'Netherlands'
},
'en-pt': {
where: 'Portugal'
},
}
И я попытался сгруппировать их, используя group_by
:
result = hash.group_by { |k,v| v[:where] }
Однако он возвращает полный массив, а не по массиву хешей. Итак, вот ожидаемые и фактические результаты:
Фактический результат:
{ "USA"=>
[[:"en-us", {:where=>"USA"}], [:"en-us-zone2", {:where=>"USA"}]],
"Netherlands"=>
[[:"en-nl", {:where=>"Netherlands"}]],
"Portugal"=>
[[:"en-pt", {:where=>"Portugal"}]]
}
Ожидаемый результат:
{ "USA"=>
[{:"en-us" => {:where=>"USA"}}, {:"en-us-zone2" => {:where=>"USA"}}]
"Netherlands"=>
[{:"en-nl" => {:where=>"Netherlands"}}]
"Portugal"=>
[{:"en-pt" => {:where=>"Portugal"}}]
}
См. Фактическое значение - это массив массивов, а не массив хеши. Ha sh keys становится первым элементом массива.
Как я могу сгруппировать свои ha sh на основе :where
?