JSFiddle - React, Tailwind, and code Playground

JavaScript

var finished = false;

var compare = function (choice1, choice2) {
    if (choice1 === choice2) {
        finished = true;
        return "The result is a tie!";

    } else if (choice1 === "rock") {
        if (choice2 === "scissors") {
            finished = true;
            return ("rock wins");
        } else {
            finished = true;
            return ("paper wins");
        }

    } else if (choice1 === "paper") {
        if (choice2 === "rock") {
            finished = true;
            return ("paper wins");
        } else {
            finished = true;
            return ("scissors wins");
        }
    } else if (choice1 === "scissors") {
        if (choice2 === "rock") {
            finished = true;
            return ("rock wins");
        } else {
            finished = true;
            return ("scissors wins");
        }
    } else if (choice1 != "rock" && "paper" && "scissors") {
        alert("not a viable input,please try again");
        finished = false;
        //compare(userChoice, computerChoice); This causes recursion. Not necessary.

    }

};

while (!finished) {
    var userChoice = prompt("Do you choose rock, paper or scissors?");
    var computerChoice = Math.random();
   
    if (computerChoice < 0.34) {
        computerChoice = "rock";
    } else if (computerChoice <= 0.67) {
        computerChoice = "paper";
    } else {
        computerChoice = "scissors";
    }
    
    console.log("Computer: " + computerChoice);
    
    alert(compare(userChoice, computerChoice));
}