javascript - 在 JavaScript 中获取数组中对象的特定字段的总和
问题描述
我知道我可以使用 reduce 来求和数组的数量,如下所示:
let numArray = [1, 2, 3, 4].reduce((a, b) => a + b, 0);
console.log(numArray);
但是,如果我有一个对象数组,其中一个字段的值是一个数字,我将如何获取数组中对象的那个字段的总和?
比如说这种数据结构:
[
{
name: "John Smith",
balance: 42
},
{
name: "Jane Doe",
balance: 24
}
]
我将如何使用 reduce 来获取数组中所有对象的“余额”字段的总和?
解决方案
尝试以下操作:
var arr = [{name: "John Smith",balance: 42},{name: "Jane Doe",balance: 24}];
var result = arr.reduce((a,curr) => a + curr.balance, 0);
console.log(result);
您甚至可以为此创建一个通用函数,例如:
var arr = [{name: "John Smith",balance: 42, average : 20},{name: "Jane Doe",balance: 24, average : 30}];
function getSumFromObjects(arr,prop) {
return arr.reduce((a,curr) => a + curr[prop], 0);
}
//get sum of prop balance
console.log(getSumFromObjects(arr,"balance"));
//get sum of prop average
console.log(getSumFromObjects(arr,"average"));
推荐阅读
- python - 矩阵码甚至不起作用,与其他类似
- windows - 从行为类似于键盘的 USB HID 设备读取
- jpeg - 错误“不是 JPEG 文件:以 0x00 0x00 开头”
- swift - 每次调用一个值时创建一个循环以添加 40
- javascript - Jasmine 测试超时并显示“在 5000 毫秒内未调用异步回调”尽管在我的 Angular 项目测试中没有使用异步函数
- javascript - 如果将对象作为参数传递给另一个文件中的函数,原始对象会改变吗?
- java - Thread 对象的 run 方法如何在内部调用 Runnable 对象的 run 方法?
- angular - 在 mat-cell 中使用 ngFor 的正确方法
- microservices - Api 网关如何将响应组合成微服务
- c++ - 如何使用 TouchGFX 在 LCD 屏幕上显示 ADC 值?