Golf Code Explanation?

Hello! This would be my first ever post in the forum so please bear with me if I don’t get things correct. So, I started learning front end 3 weeks ago through FCC. I’m not really stuck with the problem and was able to write the code but I was just confused because it seems to me that there might be something wrong with my code.
This is the Basic JavaScript: Golf Code section. Could someone help me out and look into my code if there’s something wrong? Or explain to me what happened. It might be a bug with the problem though. Please let me know. Thank you.

Here’s my code

var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
  // Only change code below this line
  if ( strokes == 1) {
    return names[0];
  } else if ( strokes <= par - 2) {
    return names[1];
  } else if (strokes == par - 1) {
    return names[2];
  } else if (strokes == par) {
    return names[3];
  } else if (strokes == par + 1) {
    return names[4];
  } else if (strokes == par + 2) {
    return names[5];
  } else if (strokes >= par + 3) {
    return names[6];
  }
  
  return "Change Me";
  // Only change code above this line
}

// Change these values to test
golfScore(5, 4);

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36.

Your code works for me. Maybe try again?

So, it’s correct then? Would you kindly explain to me how it works? I used to have multiple if else statements each return rule (11 in the problem I guess?) But I figured out it would work without being repetitive so I thought my code was wrong. Thank you.

I have a problem too with the golf code and my code it’s almost same.
The only difference is in the last else

var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
  // Only change code below this line
  if (strokes == 1){
    return names [0];
  } 
  else if (strokes <= par - 2){
    return names [1];
  } 
  else if (strokes == par - 1){
    return names [2];
  } 
  else if (strokes == par){
    return names [3];
  } 
  else if (strokes == par + 1){
    return names [4];
  } 
  else if (strokes == par + 2){
    return names [5];
  }  else {
    return [6];
  }
  // Only change code above this line
}

// Change these values to test
golfScore(5, 4);

I can’t solve it, and here is the problem:

golfScore(4, 7) should return “Go Home!”