我们正在映射数据,以便快速将API转储保存到数据库中。
但是,有些项目会列出两次,所以我们如何相互增加它们的价值呢?
例如,我们获得的位置有两次“CASH”的股票代码,它们的值为20和30.我们只想保存“CASH”一次,值为50。
final_data = import_positions.map do |position|
[
portfolio_quovo_idnum(position.portfolio),
position.id,
get_asset(position),
stock_ticker_symbol(position.ticker),
position.cost_basis,
position.cost_basis_type,
position.fxrate,
position.last_purchase_date,
position.market_code,
position.price * 100,
position.quantity.to_d,
position.sector,
position.security_type,
position.ticker_name,
position.value * 100,
get_portfolio_makeup(position),
get_user_makeup(position)
]
end
答案 0 :(得分:0)
value_sum = Hash.new(0)
import_positions.each do |position|
value_sum[position.ticker_name] += position.value
end
这将为您提供总计值的哈希值。然后:
final_data = import_positions.uniq{|p| p.ticker_name}.map do |position|
[
portfolio_quovo_idnum(position.portfolio),
position.id,
...
position.ticker_name,
value_sum[position.id] * 100,
...
]
end