首页 >web前端 >js教程 >如何使用 jQuery 按属性对对象数组进行分组和求和?

如何使用 jQuery 按属性对对象数组进行分组和求和?

Linda Hamilton
Linda Hamilton原创
2024-11-17 07:51:03543浏览

How to Group and Sum an Array of Objects by a Property Using jQuery?

按属性对对象数组进行分组和求和

问题

给定一个对象数组,您的目标是按特定值对它们进行分组属性,例如 Id,并使用 jQuery 计算每个组的另一个属性(例如 qty)的总和。

示例

考虑以下输入数组:

var array = [
  { Id: "001", qty: 1 },
  { Id: "002", qty: 2 },
  { Id: "001", qty: 2 },
  { Id: "003", qty: 4 }
];

所需的输出是:

[
  { Id: "001", qty: 3 },
  { Id: "002", qty: 2 },
  { Id: "003", qty: 4 }
]

解决方案

要按 Id 对数组进行分组并使用 jQuery 对每个组的数量值求和,您可以采用以下方法:

$(array).groupBy('Id').reduce(function (res, obj) {
  return res + obj.qty;
}, 0);

以下是解决方案的细分:

  • jQuery 的 groupBy 插件: 该插件根据指定的属性 Id 对对象数组进行分组。它返回一个对象,其属性键对应于唯一的 Id 值。
  • jQuery 的 reduce 方法: 该方法迭代分组对象并应用指定的回调函数来计算 qty 值的总和对于每个组。在这种情况下,回调函数只是将每个对象的 qty 属性添加到累加器中。

以上是如何使用 jQuery 按属性对对象数组进行分组和求和?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn