3

Currently learning web development, after completing HTML/CSS I'm now in JavaScript fundamentals (boy is it way tougher than the first two!), and in this practice project I'm looking to grab the absolute values of userGuess - secretActualNumber and computerGuess - secretActualNumber, and then compare them to see which one is closer to the secret number. So far I've tried this.

const compareGuesses = (userGuess , computerGuess, secretActualNumber) => {

    Math.abs(userGuess-secretActualNumber);

    Math.abs(computerGuess-secretActualNumber);

}

In order to compare both of those, I was thinking I need to implement the "difference" function of JS. But I've been struggling to make use that, to compare these two items, and to then result in a true/false. (true being if the user is closer, and false if the computer is closer).

Let me know what you think!

Thanks in advance

0

2 Answers 2

4

Save results to variables and then compare them:

const compareGuesses = (userGuess, computerGuess, secretActualNumber) => {

    var userDiff = Math.abs(userGuess-secretActualNumber);

    var computerDiff = Math.abs(computerGuess-secretActualNumber);

    return userDiff <= computerDiff;
}
Sign up to request clarification or add additional context in comments.

Comments

2

This will return true only if the user is closer.

const compareGuesses = (userGuess , computerGuess, secretActualNumber) =>
  Math.abs(userGuess-secretActualNumber) < Math.abs(computerGuess-secretActualNumber);

You'll want to use <= instead of < if you want it to return true when equal.

const compareGuesses = (userGuess , computerGuess, secretActualNumber) =>
  Math.abs(userGuess-secretActualNumber) <= Math.abs(computerGuess-secretActualNumber);

2 Comments

Hi there. If they are equal, I'd like the user to return true! What else would need to be adjusted to account for that?
Math.abs(userGuess-secretActualNumber) < Math.abs(computerGuess-secretActualNumber) to Math.abs(userGuess-secretActualNumber) <= Math.abs(computerGuess-secretActualNumber)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.