gbland777
gbland777

Reputation: 725

How to calculate sum of object keys in array - javascript

Question

I am working with firebase and react native.

I have returned an array from my firebase database that looks like this.

[Object, Object, Object]

Under each object I have returned a single item, "level:4".

So I have three objects containing 4,5,6. How do I sum these together?

Thanks!

Upvotes: 14

Views: 35737

Answers (5)

epascarello
epascarello

Reputation: 207537

Either a simple loop

var a = [{level:1},{level:2},{level:3},{level:4}],
        total = 0;
    for (var i=0; i<a.length; i++) {
        total += a[i].level;
    }
console.log('total', total)

or reduce

var a = [{level:1},{level:2},{level:3},{level:4}]
console.log(a.reduce( function(cnt,o){ return cnt + o.level; }, 0))

Upvotes: 20

Javidan Akberov
Javidan Akberov

Reputation: 73

This code will calculate the sum of an array. First, declare one variable; this variable's name will be sum. sum contains the total's sum. Second, declare a numbers variable of type Array. This variable will contain digits.

Then we start a loop (for) operation, in which we assign to the sum variable the value of (sum= sum+i);. Then we show in (document.write) the numbers and sum.

var summa = 0 , i ;
var numbers= [1,2,3,4,5];
for(i = 0; i <= numbers.length; i++){
    summa=summa+i;
} 
document.write(numbers , ": bu reqemlerin cemi " ,"=" , summa);

Upvotes: 1

Yasin Yaqoobi
Yasin Yaqoobi

Reputation: 2050

You can use Javascript's reduce function. This is basically the same as @epascarello answer but in ES6 syntax.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

const arr = [{level:2},{level:4},{level:5}]; 

const total = arr.reduce((prev,next) => prev + next.level,0);

console.log(total);

Upvotes: 24

Prateek Gupta
Prateek Gupta

Reputation: 538

Use Array.prototype.forEach() method to iterate over your array and sum your elements.

Let us suppose your array is var foo = [object, object, object] Each object has this structure, { level : 4 }

Write code like this:

var sum = 0;
foo.forEach(function(obj){
  sum += obj.level;
});

sum will store the sum

Upvotes: 1

Joey Wood
Joey Wood

Reputation: 273

Have you tried accessing the object in the array and calling the property?

var array = [object, object, object];
var sum = array[0].level + array[1].level + array[2].level;

Upvotes: -1

Related Questions