freeCodeCamp/curriculum/challenges/english/02-javascript-algorithms-an.../basic-javascript/generate-random-whole-numbe...

2.7 KiB

id title challengeType videoUrl forumTopicId
cf1111c1c12feddfaeb1bdef Generate Random Whole Numbers with JavaScript 1 https://scrimba.com/c/cRn6bfr 18186

Description

It's great that we can generate random decimal numbers, but it's even more useful if we use it to generate random whole numbers.
  1. Use Math.random() to generate a random decimal.
  2. Multiply that random decimal by 20.
  3. Use another function, Math.floor() to round the number down to its nearest whole number.
Remember that Math.random() can never quite return a 1 and, because we're rounding down, it's impossible to actually get 20. This technique will give us a whole number between 0 and 19. Putting everything together, this is what our code looks like: Math.floor(Math.random() * 20); We are calling Math.random(), multiplying the result by 20, then passing the value to Math.floor() function to round the value down to the nearest whole number.

Instructions

Use this technique to generate and return a random whole number between 0 and 9.

Tests

tests:
  - text: The result of <code>randomWholeNum</code> should be a whole number.
    testString: assert(typeof randomWholeNum() === "number" && (function(){var r = randomWholeNum();return Math.floor(r) === r;})());
  - text: You should be using <code>Math.random</code> to generate a random number.
    testString: assert(code.match(/Math.random/g).length > 1);
  - text: You should have multiplied the result of <code>Math.random</code> by 10 to make it a number that is between zero and nine.
    testString: assert(code.match(/\s*?Math.random\s*?\(\s*?\)\s*?\*\s*?10[\D]\s*?/g) || code.match(/\s*?10\s*?\*\s*?Math.random\s*?\(\s*?\)\s*?/g));
  - text: You should use <code>Math.floor</code> to remove the decimal part of the number.
    testString: assert(code.match(/Math.floor/g).length > 1);

Challenge Seed

var randomNumberBetween0and19 = Math.floor(Math.random() * 20);

function randomWholeNum() {

  // Only change code below this line.

  return Math.random();
}

After Test

(function(){return randomWholeNum();})();

Solution

var randomNumberBetween0and19 = Math.floor(Math.random() * 20);
function randomWholeNum() {
  return Math.floor(Math.random() * 10);
}