Return Early Pattern for Functions returns NaN

Tell us what’s happening:
When I take the return undefined out of the if/else, it returns undefined. Placing it in an if/else returns NaN, are there any ideas why?

Your code so far


// Setup
function abTest(a, b) {
  // Only change code below this line
  if (abTest < 0) {
    return undefined;
  } else {

  // Only change code above this line

  return Math.round(Math.pow(Math.sqrt(a) + Math.sqrt(b), 2));
  }
}

// Change values below to test your code
abTest(2,2);

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions/

if (abTest < 0) {
Can you describe what you think this is doing?

1 Like

If abTest is less than 0

And what is abTest?

At this point it is a and b, or 2 and 2, the parameters that are being fed in.

abTest is the name of the function.

I see, so if I test against the parameters, I should be good.

so

if (a < 0 || b < 0)
3 Likes

A post was split to a new topic: Problem with Return Early Pattern for Functions

**Here the answer
// Setup
function abTest(a, b) {
// Only change code below this line

if (a<0 || b <0){
return undefined;
}
else{
if(a==3){
return 12;
}
else if(a == b){
return 15,8;
}
else if(a == 2 && b == 8){
return 18;
}

    else if(a==3){
      return 12;
    }

}

// Only change code above this line

return Math.round(Math.pow(Math.sqrt(a) + Math.sqrt(b), 2));

}
// Change values below to test your code
abTest(3,3);

It is good to see how much I have learned, and what I am willing to laugh at myself for at this point. Cheers! We all get jobs, and we all get better.

1 Like