如何解决javascript对数组中与相同键匹配的所有项求和
我有一个像这样的JSON:
[
{
"faculty":{
"_id":"5f9c3e04e5a5423cec34b2e2","code":"khmt","facultyName":"Computer Science"
},"classSize":91,"warnedLength":61
},{
"faculty":{
"_id":"5f9c53c8a0db8f4240ec6f71","code":"dtvt","facultyName":"Electronics and Telecommunication"
},"classSize":89,"warnedLength":44
},"classSize":59,"warnedLength":20
},"code":"hkvt","facultyName":"Space Airline"
},"classSize":10,"warnedLength":5
},"classSize":20,"warnedLength":10
},"classSize":30,"warnedLength":15
}
]
并且我想要这样的输出:
[
{
"faculty":{
"_id":"5f9c3e04e5a5423cec34b2e2","totalClassSize":91,"totalWarnedLength":61
},"totalClassSize":148,// total classSize of all class has facultyName is "Electronics and Telecommunication"
"totalWarnedLength":64 // total warnedLength of all class has facultyName is "Electronics and Telecommunication"
},{
"faculty":{
"_id":"5f9c53c8a0db8f4240ec6de0","totalClassSize":60,// total classSize of all class has facultyName is "Space Airline"
"totalWarnedLength":30 // total warnedLength of all class has facultyName is "Space Airline"
},]
输出是一个数组,将所有classSize
具有相同的才能归为属性totalClassSize
,并且将所有warnedLength
具有相同的才能归为属性totalWarnedLength
输入是一个数组,输出仍然是一个数组
我是学习代码的初学者,但一段时间以来我仍然对此问题感到困惑
非常感谢您的帮助,祝您有美好的一天
解决方法
使用Array.prototype.reduce
,可以通过将faculty._id
作为对象键对当前输入数组进行分组来生成新对象,并以此为基础来计算totalWarnedLength
和{{1} }用于相同的对象键。
totalClassSize
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。