Я застрял в ситуации, у меня есть массив массива структуры, как я могу сделать его хэш, как показано ниже: -
Пример:
[[378, 1], [144, 1], [144, 1], [144, 3], [144, 7], [144, 6], [144, 8], [144, 8], [809, 1], [809, 1], [809, 8]]
Преобразовать в:
{378=>[1], 144=>[1,3,7,6,8], 809=>[1,8]}
означает, что первый элемент взят в качестве ключа, а второй элемент другого массива - в качестве значения, соответствующего ключу.
Я пробовал метод ниже, но не смогв одном случае использования:
raw_hash = arr.group_by { |sub_arr| sub_arr[0] }
modified_hash = {}
raw_hash.each do |k, arr|
modified_hash[k] = [ arr.flatten.uniq - [ k ] ].flatten
end
неудачный вариант использования, если первый элемент и второй элемент оба будут одинаковыми, тогда он получит уникальное значение и вычтет второе значение