作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个对象数组,每个对象都可能有交易集合我需要提取数组的两个值
[
{
"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,
}
]
}
]
我第一个实现的
objects.reduce((acc, transaction) => acc + transaction.value, 0);
但是第二个对我来说太难了;循环并减少每个对象?
最佳答案
对于 lodash,您可以使用 _.sumBy()
获取值(value),并嵌套 _.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 = _.sumBy(data, 'value');
const transactions = _.sumBy(data, ({ transactions }) => _.sumBy(transactions, 'amount'));
console.log('value: ', value);
console.log('transactions: ', transactions);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
如果没有 lodash,您可以使用与 Array#reduce 相同的逻辑:
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 = data.reduce((acc, { value }) => acc + value, 0);
const transactions = data.reduce((acc, { transactions }) =>
transactions.reduce((acc, { amount }) => acc + amount, 0)
, 0);
console.log('value: ', value);
console.log('transactions: ', transactions);
关于对象数组子集合中的 JavaScript 属性求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48362360/
我以前使用过像 Netbeans 和 eclipse 这样的 IDE。 我在 friend 的电脑上下载了“Visual Studio Express 2013 for windows desktop
我正在尝试弄清楚如何在 GBA 大小的 EZ Flash 3 合 1 卡中对 PSRAM 进行编程。基本上重复 GBA Exploader 和其他程序所做的事情。 如果我选择一个 block 并对其进
Filter1=re.findall(r'',PageSource) Filter2=re.findall(r'',PageSource) Filter3=re.findall(r'(.*?).*?'
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我是一名优秀的程序员,十分优秀!