I had an object which in it had objects which each had an array of objects with 0..n objects. The main object looked something like this:
{ obj1: [{obj1.1}, {obj1.2}, {obj1.3}], obj2: [{obj2.1}] obj3: [{obj3.1}, {obj3.2}] }
Each object (obj1, obj2 and obj3) held a group of common objects in an array of objects. E.g. obj1 has a group of objects in an object array (obj1.1, obj1.2 and obj1.3) all which have a common property that groups them together.
I want to now be able to iterate over each object separately in each object array in order to sum a particular property (which each object has) for each object array.
I have used Object.keys
to iterate over each object array, although I still am unable to get a separate summed value per object array.
For example:
{ obj1: [ 0: { price: 10 } 1: { price: 10 } 2: { price: 10 } ], obj2: [ 0: { price: 10 } ], obj3: [ 0: { price: 10 } 1: { price: 10 } ] }
I want to be able to sum the property price
for each individual object array. Therefore for obj1
I should have a summed amount of 30. For obj2
I should have a summed amount of 10, and lastly for obj3
I should have a summed amount of 20.
I can iterate over each object array using Object.keys
, however as it stands now, when iterating over each individual element in each object array (using a foreach), I am only summing a final amount for all objects in all three object arrays. I.e. I am getting a summed amount of 60.
var total = 0; for (var key of Object.keys(result)) { result[key].forEach(element => { total += element.Price; }); }; console.log(total);
What could I use to get the three individually summed amounts per object array?
Advertisement
Answer
function sum(prices) { let total = 0; prices.forEach((entry) => total += entry.price); return total; } console.log(sum(obj1)); console.log(sum(obj2)); console.log(sum(obj3));
Why was this hard again? You had the right code, just needed to break things out.