通过多个属性对对象进行分组并求和它们的值
在 JavaScript 中,通常使用对象数组。有时,需要根据多个属性对这些对象进行分组,同时对它们的值进行计算,例如对特定属性求和。
问题概述
给定一个对象数组,我们的目标是根据两个属性(形状和颜色)对它们进行分组。但是,只有当对象的形状和颜色匹配时,我们才将其视为重复项。目标是总结每个组中对象的使用属性和实例属性,并删除任何重复项。
预期结果
使用以下示例数组:
我们期望获得一个包含四个的数组groups:
使用 Array#reduce 和 Object#assign 的解决方案
为了实现这一点,我们可以利用 JavaScript 的 Array#reduce 方法来迭代数组对象。对于每个对象,我们通过连接形状和颜色属性来构造一个唯一的键。然后,我们使用辅助对象 helper 来跟踪分组的对象。
如果辅助对象中不存在该键,我们使用 Object.assign() 添加一个新条目来创建当前对象的新副本。然后我们将这个新对象推入结果数组中。
如果该键已存在于 helper 中,则意味着我们遇到了重复项。在这种情况下,我们只需增加 helper 中相应对象的used和instances属性即可。
最后,我们返回结果数组,该数组有效地按形状和颜色对对象进行分组,同时对它们的值进行求和。
以上是如何按多个属性对 JavaScript 对象进行分组并对它们的值求和?的详细内容。更多信息请关注PHP中文网其他相关文章!