首页 > web前端 > js教程 > 如何按多个属性对 JavaScript 对象进行分组并对它们的值求和?

如何按多个属性对 JavaScript 对象进行分组并对它们的值求和?

Mary-Kate Olsen
发布: 2024-11-11 03:30:03
原创
233 人浏览过

How do you group JavaScript objects by multiple properties and sum their values?

通过多个属性对对象进行分组并求和它们的值

在 JavaScript 中,通常使用对象数组。有时,需要根据多个属性对这些对象进行分组,同时对它们的值进行计算,例如对特定属性求和。

问题概述

给定一个对象数组,我们的目标是根据两个属性(形状和颜色)对它们进行分组。但是,只有当对象的形状和颜色匹配时,我们才将其视为重复项。目标是总结每个组中对象的使用属性和实例属性,并删除任何重复项。

预期结果

使用以下示例数组:

我们期望获得一个包含四个的数组groups:

使用 Array#reduce 和 Object#assign 的解决方案

为了实现这一点,我们可以利用 JavaScript 的 Array#reduce 方法来迭代数组对象。对于每个对象,我们通过连接形状和颜色属性来构造一个唯一的键。然后,我们使用辅助对象 helper 来跟踪分组的对象。

如果辅助对象中不存在该键,我们使用 Object.assign() 添加一个新条目来创建当前对象的新副本。然后我们将这个新对象推入结果数组中。

如果该键已存在于 helper 中,则意味着我们遇到了重复项。在这种情况下,我们只需增加 helper 中相应对象的used和instances属性即可。

最后,我们返回结果数组,该数组有效地按形状和颜色对对象进行分组,同时对它们的值进行求和。

以上是如何按多个属性对 JavaScript 对象进行分组并对它们的值求和?的详细内容。更多信息请关注PHP中文网其他相关文章!

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