Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Functions Arrow Functions Function Challenge Solution

Ahmed El-Kordy
Ahmed El-Kordy
3,560 Points

Trying to practice what i learned

Hello there,

Bellow is my solution but i added a bit to it, my goal was not to have a negative number in case the first input is higher that the second, please let me know what u think ` function randomNumber (num1, num2) {

if (num1 > num2){ const upper = Math.floor(Math.random() * (num1 - num2 + 1)) + 1; return ${upper} , Is a randome number between ${num1} and ${num2}; }else { const down = Math.floor(Math.random() * (num2 - num1 + 1)) + 1;
return ${down} , Is a randome number between ${num1} and ${num2}; } }

console.log(randomNumber(20, 50)); `

1 Answer

Ahmed, Almost there, but you're missing a couple things. Remember the Math.random() function returns any number between 0 and 1, but not including 1. So this means that it could return '0'. Given this you must make sure that when trying to generate a random number between 2 numbers, a min and a max, that your random number generator code appropriately considers this, so that if num2 is your min number and if Math.random() does return 0 then your random number generator code will return num2, and vice versa if num1 is your min number. Also your template literal expressions are incomplete as they are missing the 'backticks', like the following:

if (num1 > num2){ 
const upper = Math.floor(Math.random() * (num1 - num2 + 1)) + num2; 
return `${upper} , Is a randome number between ${num2} and ${num1}`; 
} 
else { 
const down = Math.floor(Math.random() * (num2 - num1 + 1)) + num1;
return `${down} , Is a randome number between ${num1} and ${num2}`; 
};