我正在尝试为个人财务管理构建一个系统,我希望学习Ruby。
我创建了一个股票<资产。 这包含有关资产的所有信息(当前现货价格等)。 我有我的个人资料,我可以通过buy_price,quantity,date等将资产添加到我的余额中。
我想show_assets_by_code,当我运行此方法时,我希望系统通过我的Assest,然后按代码对此进行分类,并将数量相加,得到包含成本的average_price。并返回:[asset,average_price_with_cost,total_quantity]
现在我可以对资产进行分组:
{"RNGO11"=>
[{:quantity=>10,
:buying_price=>75.0,
:cost=>16.91,
:date=>2016-09-05 18:06:06 -0300,
:code=>"RNGO11",
:asset_id=>18563448},
{:quantity=>100,
:buying_price=>75,
:cost=>16.91,
:date=>"16/4/2015",
:code=>"RNGO11",
:asset_id=>18563448},
{:quantity=>100,
:buying_price=>77,
:cost=>16.91,
:date=>"16/4/2016",
:code=>"RNGO11",
:asset_id=>18563448}],
"BRCR11"=>
[{:quantity=>100,
:buying_price=>75,
:cost=>16.91,
:date=>2016-09-05 18:06:06 -0300,
:code=>"BRCR11",
:asset_id=>18563316}]}
如何获取信息,并为每个组使用Hash中的数据?
我想要输出:
[RNGO11, quantity: 210, average_price: 76.19]
[BRCR11, quantity: 100, average_price: 75.17]
任何提示?
答案 0 :(得分:1)
data.map do |key, values|
quantity = values.map { |entry| entry[:quantity] }.reduce(:+)
average_price = values.map { |entry| entry[:buying_price] + entry[:cost] }.reduce(:+).to_f / values.size
{ code: key, quantity: quantity, average_price: average_price }
end
如果这对您有用,请告诉我 编辑:考虑增加成本
答案 1 :(得分:0)
感谢Pawel Duda,我做对了!
Object1.transform.position = Vector3.MoveTowards(PosB, PosA, step);
Object2.transform.position = Vector3.MoveTowards(PosA, Posb, step);
如果有人想改进此代码,我会很高兴的! 我闻到了改进但却无法发现它。看起来不干......不可读。 但是,嘿,它正在努力购买和出售资产。 (根据我必须申报的收入联邦税(巴西)。