📅  最后修改于: 2023-12-03 14:43:33.148000             🧑  作者: Mango
在 JavaScript 中,我们经常需要获取一个对象数组中某一属性的总和。比如,我们要获取一个购物车中所有商品的总价或者一个学生数组中所有学生的平均成绩。下面我们介绍几种方法来实现这个功能。
使用 for 循环遍历数组,累加每个对象中的属性值,最终得到总和。
let arr = [{price: 10}, {price: 20}, {price: 30}];
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i].price;
}
console.log(sum); // 输出 60
这种方法的优点是简单易懂,适用范围广,但是代码量大。
使用 Array.reduce() 方法可以更简洁地实现上述功能,它可以将数组中的所有元素合并为一个值。
let arr = [{price: 10}, {price: 20}, {price: 30}];
let sum = arr.reduce((prev, cur) => prev + cur.price, 0);
console.log(sum); // 输出 60
这种方法的优点是代码简洁,但是可读性不如 for 循环。
lodash 库是一个集成了众多实用工具函数的 JavaScript 库。其中,_.sumBy() 方法可以帮助我们获取对象数组中某一属性的总和。
const _ = require('lodash');
let arr = [{price: 10}, {price: 20}, {price: 30}];
let sum = _.sumBy(arr, 'price');
console.log(sum); // 输出 60
这种方法的优点是代码简洁且性能很好,缺点是需要引入一个库。
综上所述,根据具体情况选择不同的方法来获取对象数组的总和。