I have an array of objects where i need sum of object property values in new array of objects,
Input:
var inputArray = [
{ subject: \'Maths\', mark
You can do this with forEach and thisArg
optional parameter
var inputArray = [
{ subject: 'Maths', marks: '40', noOfStudents: '5' },
{ subject: 'Science', marks: '50', noOfStudents: '16' },
{ subject: 'History', marks: '35', noOfStudents: '23' },
{ subject: 'Science', marks: '65', noOfStudents: '2' },
{ subject: 'Maths', marks: '30', noOfStudents: '12' },
{ subject: 'History', marks: '55', noOfStudents: '20' },
], outputArray = [];
inputArray.forEach(function(e) {
if(!this[e.subject]) {
this[e.subject] = { subject: e.subject, marks: 0, noOfStudents: 0 }
outputArray.push(this[e.subject]);
}
this[e.subject].marks += Number(e.marks);
this[e.subject].noOfStudents += Number(e.noOfStudents);
}, {});
console.log(outputArray)