gpt4 book ai didi

javascript - 按值求和不同长度的对象数组

转载 作者:行者123 更新时间:2023-11-29 21:12:29 25 4
gpt4 key购买 nike

对如下所示的不同长度的对象数组求和的最佳方法是什么:

data = [{"category":"category1","months":{"1":34,"2":67,"3":29,...}
{"category":"category2","months":{"1":34,"2":627,"3":292,...}
{"category":"category3","months":{"1":46,"2":665,"3":129,...}
{"category":"category4","months":{"1":624,"2":667,"3":629,...}
{"category":"category5","months":{"1":32,"2":637,"3":299,...}
}]

我想基本上按月分组并求和并将其分配给总类别。因此,我会得到一个如下所示的新对象,并将其推送到我的数据对象:

{"category":"total","months":{"1":770,"2":2663,"3":1378,...}

我最终会得到:

data = [{"category":"category1","months":{"1":34,"2":67,"3":29,...}
{"category":"category2","months":{"1":34,"2":627,"3":292,...}
{"category":"category3","months":{"1":46,"2":665,"3":129,...}
{"category":"category4","months":{"1":624,"2":667,"3":629,...}
{"category":"category5","months":{"1":32,"2":637,"3":299,...}
{"category":"total","months":{"1":770,"2":2663,"3":1378,...}
}]

最佳答案

let data = [
{"category":"category1","months":{"1":34,"2":67,"3":29}},
{"category":"category2","months":{"1":34,"2":627,"3":292}},
{"category":"category3","months":{"1":46,"2":665,"3":129}},
{"category":"category4","months":{"1":624,"2":667,"3":629}},
{"category":"category5","months":{"1":32,"2":637,"3":299}},
];

let total = {"category":"total","months":{}};

data.forEach(category => {
for(let prop in category.months){
if (total.months[prop]){
total.months[prop] += category.months[prop];
}
else{
total.months[prop] = category.months[prop];
}
}
});

data.push(total);

关于javascript - 按值求和不同长度的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41093253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com