Basic JavaScript - Counting Cards

Tell us what’s happening:
hi!

I used help from the video to create this if statement.

 var holdbet = 'Hold'
  if (count > 0) {
    holdbet = 'Bet'
  }

I was wondering is the variable holdout being hoisted to outside the function with the var declaration?

if so it seemed we need something else for this function to work up to 5 times in a row without resetting.

Your code so far

let count = 0;

function cc(card) {
  // Only change code below this line

  switch(card){
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
      count++;
    break;

    case 10:
    case "J":
    case "Q":
    case "K":
    case "A":
      count--;  
  }

 var holdbet = 'Hold'
  if (count > 0) {
    holdbet = 'Bet'
  }


  return count + " " + holdbet;
 
  // Only change code above this line

}

cc(2); cc(3); cc(7); cc('K'); cc('A');

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15

Challenge: Basic JavaScript - Counting Cards

Link to the challenge:

Variables declared using var are function scoped.

It is redeclared every time the function runs.

1 Like

great makes more sense

so the count is not reset every time the function is called by the test cases, but the var in the function is.

From a code execution point of view, yes.

But that doesn’t mean the tests can’t do something you can’t see. Like resetting variables between runs if needed. This is more of an aside, I’m not saying that is happening here only that it technically can happen.

1 Like

excellent points!

thanks makes sense!

it didn’t occur to me that the tests could reset or did in this case. I’ll be mindful in the future that the tests could reset.

1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.