У меня есть структура данных, которая выглядит следующим образом:
arr = [
{
price: 2.0,
unit: "meter",
tariff_code: "4901.99",
amount: 200
},
{
price: 2.0,
unit: "meter",
tariff_code: "4901.99",
amount: 200
},
{
price: 14.0,
unit: "yards",
tariff_code: "6006.24",
amount: 500
},
{
price: 14.0,
unit: "yards",
tariff_code: "6006.24",
amount: 500
}
]
Мне нужно сгруппировать их по тарифному коду, суммируя цену и суммы, соответствующие этому тарифному коду. Так что мой ожидаемый результат должен быть:
[
{
price: 4.0,
unit: "meter",
tariff_code: "4901.99",
amount: 400
},
{
price: 2.0,
unit: "yards",
tariff_code: "6006.24",
amount: 1000
}
]
receipt_data[:order_items].group_by { |oi| oi[:tariff_code] }.values
Выражение group_by
, использованное выше, позволит мне сгруппировать по коду тарифа, но я не могу найти способ суммировать другие значения. Я уверен, что есть хитрый однострочный способ сделать это ...