Я хотел бы получить обратно массив хэшей, основанный на спортивных и типа комбинациирубин, уникальные хэши в массиве на основе нескольких полей
У меня есть следующий массив:
[
{ sport: "football", type: 11, other_key: 5 },
{ sport: "football", type: 12, othey_key: 100 },
{ sport: "football", type: 11, othey_key: 700 },
{ sport: "basketball", type: 11, othey_key: 200 },
{ sport: "basketball", type: 11, othey_key: 500 }
]
I бы хотели, чтобы вернуться:
[
{ sport: "football", type: 11, other_key: 5 },
{ sport: "football", type: 12, othey_key: 100 },
{ sport: "basketball", type: 11, othey_key: 200 },
]
Я пытался использовать (псевдокод):
[{}, {}, {}].uniq { |m| m.sport and m.type }
Я знаю, что могу создать такой массив с циклами, я совершенно новый для рубинов, и мне любопытно, есть ли лучший (более элегантный) способ сделать это.
Да, 'uniq' с блоком является путь, но вот еще один способ:' arr.group_by {| ч | [h [: спорт], h [: type]]} .values.map (&: first) '. –