Skip to content

Instantly share code, notes, and snippets.

@thiagodebastos
Created November 29, 2015 06:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thiagodebastos/c9d381fb0b7826c14350 to your computer and use it in GitHub Desktop.
Save thiagodebastos/c9d381fb0b7826c14350 to your computer and use it in GitHub Desktop.
JavaScript Road Trip Part 3 Level 2 Challenge 4
function mystery(input) {
var secret = 4;
input += 2;
function mystery2(multiplier) {
multiplier *= input;
return secret * multiplier;
}
return mystery2;
}
function mystery3(param) {
function mystery4(bonus) {
return param(6) + bonus;
}
return mystery4;
}
var hidden = mystery(3);
var jumble = mystery3(hidden);
var result = jumble(2);

Calculate the final value of the result variable and alert the value as a number using one line of code.

function mystery(input) {
  var secret = 4;
  input += 2;
  function mystery2(multiplier) {
    multiplier *= input;
    return secret * multiplier;
  }
  return mystery2;
}

function mystery3(param) {
  function mystery4(bonus) {
    return param(6) + bonus;
  }
  return mystery4;
}
var hidden = mystery(3);

calling mystery3 gives us return mystery2 with the parameter 3 as the input:

function mystery2(multiplier) {
  multiplier *= 5;
  return secret * multiplier;
}

Next we have jumble, which takes hidden as a parameter, which is really just mystery2 with parameters passed in as above. So, we pass mystery2 as the param parameter in mystery3:

var jumble = mystery3(hidden);
function mystery4(bonus) {
  return mystery2(6) + bonus;
}

Finally we have result, which is mystery4 with 2 as its parameter:

var result = jumble(2);
return mystery2(6) + 2;

And to get the final result, we pass 6 as a parameter to mystery2:

function mystery2(6) {
  multiplier = 6 * 5; // 30
  return 4 * 30; // 120
}

result is therefore 120 + 2 = 122

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment