如果我有
array = [{:external_product_id=>"A", :quantity=>1}, {:external_product_id=>"A", :quantity=>2}, {:external_product_id=>"B", :quantity=>1}]
并想轉變為
array = [{:external_product_id=>"A", :quantity=>3}, {:external_product_id=>"B", :quantity=>1}]
例如,將具有相同 ID(“A”)的產品合并在一起。有沒有不使用地圖、選擇等更簡單的方法?
我現在正在嘗試使用地圖,似乎比我預期的要難一些。
uj5u.com熱心網友回復:
像這樣的東西?
array.group_by { |item| item[:external_product_id] }
.map do |external_product_id, items|
{
external_product_id: external_product_id,
quantity: items.sum { |item| item[:quantity] }
}
end
=> [{:external_product_id=>"A", :quantity=>3}, {:external_product_id=>"B", :quantity=>1}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/529717.html
標籤:轨道上的红宝石红宝石
