对象数组子集合中属性的JavaScript求和

对象数组子集合中属性的JavaScript求和,javascript,lodash,Javascript,Lodash,我有一个对象数组,每个对象可能都有事务集合,我需要提取数组的两个值 所有对象的和值 所有交易的总金额 我的第一个目标是 objects.reduce((acc, transaction) => acc + transaction.value, 0); 但是第二个对我来说太难了;我是否循环并减少每个对象 使用lodash,您可以使用来获取值,嵌套\uu.sumBy()调用来获取交易金额: const data=[{“id”:“1”,“value”:2343,“transactions

我有一个对象数组,每个对象可能都有事务集合,我需要提取数组的两个值

  • 所有对象的和值
  • 所有交易的总金额
我的第一个目标是

objects.reduce((acc, transaction) => acc + transaction.value, 0);
但是第二个对我来说太难了;我是否循环并减少每个对象

使用lodash,您可以使用来获取值,嵌套
\uu.sumBy()
调用来获取交易金额:

const data=[{“id”:“1”,“value”:2343,“transactions”:[{“id”:88,“amount”:34},{“id”:89,“amount”:111}},{“id”:“2”,“value”:345,“transactions”:[{“id”:90,“amount”:44},{“id”:91,“amount”:112}];
const value=u.sumBy(数据“值”);
const transactions=\.sumBy(数据,({transactions})=>\.sumBy(交易,'amount');
console.log('value:',value);
console.log('事务:',事务)

这可能是老式的,但我喜欢
.forEach()
循环解决这样一个简单的问题。它们简单易懂

let对象=[
{
“id”:“1”,
“价值”:2343,
“交易”:[
{“id”:88,“金额”:34,},
{“id”:89,“金额”:111,}
]
},
{
“id”:“2”,
“价值”:345,
“交易”:[
{“id”:90,“金额”:44,},
{“id”:91,“amount”:112,}
]
}
];
设totalValue=0;
让TotalTransactionMount=0;
forEach(函数(对象){
totalValue+=object.value;
object.transactions.forEach(函数(事务){
TotalTransactionMount+=交易金额;
});
});
日志(totalValue、TotalTransactionMount)
objects.reduce((acc, transaction) => acc + transaction.value, 0);