У меня есть Рубин массив:Рубин массив ключ group_by с несколькими значениями
[
{tags: [1,2]},
{tags: [1,3]},
{tags: [1,4]},
{tags: [2,4]},
{tags: [2,5]}
]
Мне нужно сгруппировать объекты по тэгам:
{
1: [{tags: [1,2]}, {tags: [1,3]}, {tags: [1,4]}],
2: [{tags: [1,2]}, {tags: [2,4]}, {tags: [2,5]}],
3: [{tags: [1,3]}],
4: [{tags: [1,4]}, {tags: [2,4]}],
5: [{tags: [2,5]}]
}
Есть волшебный рубин способ сделать это?
Есть вопрос где-то там? С чем конкретно вы столкнулись? –
@MarkThomas Вопрос в названии. Учитывая массив Ruby Arash из хэш-элементов, я хочу индексировать эти элементы по значениям в свойстве Array каждого хэша. Труднее описать словами, чем показать вам код. Отсюда мой краткий вопрос с акцентом на код. – colllin
@MarkThomas, этот вопрос сродни: «какое следующее число в последовательности 3, 9, 18, 30, 45?» Я не мог понять этот вопрос, пока не прочитал ответы. Похоже, что если 'i' удовлетворяет' h [: tags] .include? [I] => true' для хотя бы одной из пяти хэшей 'h', то' i' является ключом в возвращаемом хэше, а его value - массив всех хэшей 'h', для которых' h [: tags] .include? [i] => true'. (Следующий элемент в последовательности обозначается буквой '3 (n + n^2)/2'.) –