javascript - 通过javascript中的对象数组进行映射

标签 javascript arrays loops object

我有一个像这样的对象数组:

[{side: Buy, price: 100}, {side: Buy, price: 110}, {side: Sell, price: 200}, {side: Buy, price: 150} ] 

现在我想为这个数组计算买卖双方的总和,以及每一方的平均价格总和。更具体地说,我希望我的输出是这样的: 购买 = 3 购买平均价格 = 120 卖出 = 1 卖出平均价格 = 200 我是 javascript 的新手并且有反应,所以我遇到了一些困难。谢谢!:)

最佳答案

可能最简单的方法是迭代数组并为每个保持滚动平均值。

var data = [{side: 'Buy', price: 100}, {side: 'Buy', price: 110}, {side: 'Sell', price: 200}, {side: 'Buy', price: 150} ];

var tally = { Buy: { count: 0, total: 0 }, Sell: { count: 0, total: 0 } };

data.forEach(item => {
    tally[item.side].count = tally[item.side].count + 1;
    tally[item.side].total = tally[item.side].total + item.price;
})

console.log("AvgPrice for Buy = " + (tally.Buy.total / tall.Buy.count) + " Sell = 1 AvgPrice for Sell = " + (tally.Sell.total / tall.Sell.count));

关于javascript - 通过javascript中的对象数组进行映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43181983/

相关文章:

javascript - p5.j​​s Rect() 方法未定义

python - NumPy 能否注意数组(非严格地)沿一个轴递增?

javascript - React 无法读取属性值

python - 创建单个列表项的列表乘以 n 次

java - 在数组中插入数字

javascript - 向 Ember 模型添加自定义属性

javascript - Ajax 请求附加到多个命中

javascript - 我应该添加什么过滤器以在 Netsuite - suitescript 的最后 14 或 15 天内获得相同的 transaction_date 字段?

python - numpy 从索引列表创建 3D 数组

python - 从循环中的最后一次迭代访问值的最佳方法