【发布时间】:2020-07-27 19:28:45
【问题描述】:
这里的第一个问题,所以请随时指出我应该做些什么不同的事情,或者我是否应该参考其他线程。
我有一组看起来像这样的对象:
const fetchResults = [ {
date: '03/20/2020', symbol: 'TLTE', quantity: 100, amount: 3570,
}, {
date: '03/20/2020', symbol: 'GE', quantity: 100, amount: 10000,
}, {
date: '03/20/2020', symbol: 'AAPL', quantity: 50, amount: 22222,
}, {
date: '03/20/2020', symbol: 'TLTE', quantity: 4, amount: 161.02,
}, {
date: '03/20/2020', symbol: 'TLTE', quantity: 281, amount: 10034.51,
}, {
date: '03/21/2020', symbol: 'TLTE', quantity: 200, amount: 8000,
} ]
我需要一个有效载荷,它返回每个交易日期和交易品种的数量和金额之和。 具体来说,在此示例中,它将合计 3 个对象的数量和金额,其中包含 TLTE 和 3/20/20。有效载荷结果如下所示:
const payloadResults = [ {
date: '03/20/2020', symbol: 'GE', quantity: 100, amount: 10000,
}, {
date: '03/20/2020', symbol: 'AAPL', quantity: 50, amount: 22222,
}, {
date: '03/20/2020', symbol: 'TLTE', quantity: 385, amount: 13765.53,
}, {
date: '03/21/2020', symbol: 'TLTE', quantity: 200, amount: 8000,
} ]
这是我尝试过的代码:
const fetchResults = [ {
trade_date: '03/20/2020', symbol: 'TLTE', quantity: 100, amount: 3570,
}, {
trade_date: '03/20/2020', symbol: 'GE', quantity: 100, amount: 10000,
}, {
trade_date: '03/20/2020', symbol: 'AAPL', quantity: 50, amount: 22222,
}, {
trade_date: '03/20/2020', symbol: 'TLTE', quantity: 4, amount: 161.02,
}, {
trade_date: '03/20/2020', symbol: 'TLTE', quantity: 281, amount: 10034.51,
}, {
trade_date: '03/21/2020', symbol: 'TLTE', quantity: 200, amount: 8000,
} ]
const payloadResults = []
const uniqueTradeDates = Array.from(new Set(fetchResults.map(({ trade_date }) => trade_date)))
const uniqueSecurityIds = Array.from(new Set(fetchResults.map(({ symbol }) => symbol)))
for (const td of uniqueTradeDates) {
for (const s of uniqueSecurityIds) {
const results = fetchResults.filter((r) => r.symbol === s && r.trade_date === td)
if (results.length > 0) {
const totalQuantity = results.reduce((a, b) => a + b.quantity, 0)
const totalAmount = results.reduce((a, b) => a + b.amount, 0)
payloadResults.push({
trade_date: td, symbol: s, quantity: totalQuantity, amount: totalAmount,
})
}
}
}
console.log(payloadResults)
感谢您的帮助!
【问题讨论】:
-
问题应该包括你尝试过的代码。请将其添加到您的问题中。
-
@jmargolisvt 10-4。我添加了我的工作。
标签: javascript arrays sum duplicates javascript-objects