Matthew Lo
Matthew Lo

Reputation: 11

forEach returning undefined

This function goes through the arrays and in each object, add the 1st number and subtract the 2nd number

eg. number([[10,0],[3,5],[5,8]]) = (10-0) + (3-5) + (5-8) Total should equal 5

Problem: I'm using a forEach loop but it returns undefined, when I console.log the number shows 5.

var number = function(busStops){
  var total = 0;
  busStops.forEach(function(n){
    total = total + n[0] - n[1];
    return total;
  })
}

Upvotes: 0

Views: 41

Answers (2)

Nina Scholz
Nina Scholz

Reputation: 386816

You could reduce the array.

const
    number = busStops => busStops.reduce((t, [a, b]) => t + a - b, 0);

console.log(number([[10, 0], [3, 5], [5, 8]]));

Upvotes: 2

Matthew Lo
Matthew Lo

Reputation: 11

Just found the issue, the return should be outside the forEach loop

var number = function(busStops){
  var total = 0;
  busStops.forEach(function(n){
    total = total + n[0] - n[1];
  })
  return total;
}

Upvotes: 0

Related Questions