If you can get the values in an array, you do not need to use jQuery to sum them up. You can use the methods already present on the array object to do the work.
Arrays have a .reduce () method. Documentation: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/Reduce
Array.reduce takes a function as an argument, which acts as a battery callback. The accumulator function takes 4 arguments (previousValue, currentValue, index, array). You only need to summarize 2 of them. These 2 arguments are previousValue and currentValue.
var sampleArray = [1, 2, 3, 4, 5]; var sum = sampleArray.reduce(function(previousValue, currentValue){ return currentValue + previousValue; });
If you encounter a compatibility issue when the target environment does not support the addition of ECMAScript 5 or higher, use the prototype definition defined in the associated MDN article. (Added below)
if (!Array.prototype.reduce) { Array.prototype.reduce = function reduce(accumulator){ if (this===null || this===undefined) throw new TypeError("Object is null or undefined"); var i = 0, l = this.length >> 0, curr; if(typeof accumulator !== "function") // ES5 : "If IsCallable(callbackfn) is false, throw a TypeError exception." throw new TypeError("First argument is not callable"); if(arguments.length < 2) { if (l === 0) throw new TypeError("Array length is 0 and no second argument"); curr = this[0]; i = 1; // start accumulating at the second element } else curr = arguments[1]; while (i < l) { if(i in this) curr = accumulator.call(undefined, curr, this[i], i, this); ++i; } return curr; }; }
source share