Matt Price
Matt Price

Reputation: 1401

Adding values in array prints values, and does not add in Angular

I am trying to add some values within an array, but instead of outputting the sum, it prints the 2 values next to each other.

My array is:

$scope.values = [
  {amount: 5},
  {amount: 5}
]

My function is:

$scope.total = function() {
    var total = 0;
    angular.forEach($scope.values, function(item) {
        total += item.amount;
    })
    return total;
}

When i call {{ amountRemaining() }} it displays "55", instead of 10.

When i push another object to the array with a value of 6, it displays "556".

Another note to add, is that when i call {{values}}, it is placing the 5 inside "", which i think is the culprit.

"amount":"05"

How would i ensure the number is an integer?

Upvotes: 0

Views: 20

Answers (1)

Voreny
Voreny

Reputation: 785

You should coerce it explicitly.

total += Number(item.amount);

or

total += parseInt(item.amount);

The latter will make the effort to extract any valid number from the parameter, the first one will check if it's a number and either parse it or be NaN.

Upvotes: 2

Related Questions