以下是一个示例的解决方法,可以按键分组对数组对象的值求和,并返回一个新的数组对象的数组。
def sum_array_objects(arr, key):
sums = {}
for obj in arr:
if obj[key] in sums:
sums[obj[key]] += obj['value']
else:
sums[obj[key]] = obj['value']
result = []
for k, v in sums.items():
result.append({key: k, 'sum': v})
return result
使用示例:
array_objects = [
{'key': 'A', 'value': 1},
{'key': 'B', 'value': 2},
{'key': 'A', 'value': 3},
{'key': 'C', 'value': 4},
{'key': 'B', 'value': 5}
]
result = sum_array_objects(array_objects, 'key')
print(result)
输出:
[{'key': 'A', 'sum': 4}, {'key': 'B', 'sum': 7}, {'key': 'C', 'sum': 4}]
在这个示例中,我们使用一个字典 sums
来存储每个键的值的总和。然后,我们遍历原始数组对象,检查每个对象的键的值是否在 sums
字典中。如果存在,我们将该对象的值加到对应的总和上;如果不存在,我们将该键和值添加到 sums
字典中。最后,我们将 sums
字典中的每个键和对应的总和添加到结果数组中,并返回结果数组。
上一篇:按键分组的数组对象中的循环
下一篇:按键分组对象