首页 > web前端 > js教程 > 如何在 jQuery 中使用 Reduce 方法对对象数组进行分组和求和?

如何在 jQuery 中使用 Reduce 方法对对象数组进行分组和求和?

Patricia Arquette
发布: 2024-11-23 06:17:22
原创
274 人浏览过

How Can You Group and Sum an Array of Objects in jQuery Using the Reduce Method?

在 jQuery 中对对象数组进行分组和求和:详细指南

对对象数组中的值进行分组和求和是一项常见任务在编程中。在 jQuery 中,可以使用 reduce() 方法有效地实现这一点。

理解目标

目标是根据特定属性对对象数组进行分组,在本例中为“Id”属性。将对象分组后,应将每组的数量(“数量”)相加。

分步解决方案

  1. 初始化:创建一个名为result的空数组来存储分组后的结果对象。
  2. 循环遍历数组:使用reduce()方法迭代数组。该方法采用两个函数作为参数:

    • 累加器函数:累加之前迭代的结果。它通常表示为 res 或 acc。
    • 值函数: 处理数组中的当前元素。它通常表示为 value 或 currentValue。
  3. 分组: 在 reduce() 方法中,检查累加器对象 (res) 是否具有与当前对象的属性匹配的属性“Id”属性。如果没有,则初始化一个对象,将当前的“Id”作为属性,并将“qty”属性初始化为0,并将该对象推入结果数组中。
  4. 求和:更新当前对象的“Id”对应的累加器对象的“qty”属性加上当前对象的“qty” value.
  5. 返回结果:reduce() 方法返回最终的累加器对象。该对象表示对象的分组和求和数组。

示例实现

以下 jQuery 代码片段演示了上述步骤:

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

var result = [];
array.reduce(function(res, value) {
  if (!res[value.Id]) {
    res[value.Id] = { Id: value.Id, qty: 0 };
    result.push(res[value.Id])
  }
  res[value.Id].qty += value.qty;
  return res;
}, {});

console.log(result);
登录后复制

此代码将输出以下对象的分组和求和数组:

[
  { Id: "001", qty: 3 },
  { Id: "002", qty: 2 },
  { Id: "003", qty: 4 }
]
登录后复制

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板