Достигается ли это с помощью выбранных клавиш:
Например
h = [
{a: 1, b: "Hello", c: "Test1"},
{a: 2, b: "Hey", c: "Test1"},
{a: 3, b: "Hi", c: "Test2"}
]
Ожидаемый результат
[
{a: 1, b: "Hello, Hey", c: "Test1"}, # See here, I don't want key 'a' to be merged
{a: 3, b: "Hi", c: "Test2"}
]
My Try
g = h.group_by{|k| k[:c]}.values
OUTPUT =>
[
[
{:a=>1, :b=>"Hello", :c=>"Test1"},
{:a=>2, :b=>"Hey", :c=>"Test1"}
], [
{:a=>3, :b=>"Hi", :c=>"Test2"}
]
]
g.each do |v|
if v.length > 1
c = v.reduce({}) do |s, l|
s.merge(l) { |_, a, b| [a, b].uniq.join(", ") }
end
end
p c #{:a=>"1, 2", :b=>"Hello, Hey", :c=>"Test1"}
end
Итак, я получаю вывод
{:a=>"1, 2", :b=>"Hello, Hey", :c=>"Test1"}
Но мне нужно было
{a: 1, b: "Hello, Hey", c: "Test1"}
ПРИМЕЧАНИЕ: Это всего лишь тестовый массив HASH, который я взял, чтобы задать свой вопрос. Но фактический хэш имеет много ключей. Поэтому, пожалуйста, не отвечайте с ключевыми ответами
Мне нужно менее сложное решение