如何检查if/else语句中的随机条件?

Les*_*lor 0 javascript arrays if-statement function

我正在尝试编写一个if/else语句,将html写入页面,具体取决于randomNumber函数从myOptions数组生成的选项.我不知道如何检查if条件,因为它总是会导致写入"你输了!....."的其他内容.

目标:选项1和选项2获胜,选项3和选项4输掉.

摆弄它.

function randomNumber(range) {
    return Math.round( Math.random() * range );
}

var myOptions = ["Option 1", "Option 2", "Option 3", "Option 4"];
myOptions = myOptions[randomNumber( myOptions.length - 1)];
alert(myOptions);

if (myOptions <= 1) {
    document.getElementById("message").innerHTML = "You win!";
} else {
    document.getElementById("message").innerHTML = "You lose! " + myOptions + " was your pick";
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*nny 5

不要对您的选项数组和随机选择的选项使用相同的变量.随机分配索引,然后您可以在必要时引用数组中的相应字符串.

您将选项数组重新分配给其中一个值,然后尝试将该字符串值与数值进行比较.你绝对可以指定myOptions为一个字符串,然后检查它的值以获得胜利值,但我认为你正在尝试做更多的事情:

var myOptions = ["Option 1", "Option 2", "Option 3", "Option 4"];

var optionIndex = randomNumber(myOptions.length);
var selectedOption = myOptions[optionIndex];

alert(selectedOption);

if (optionIndex <= 1) {
    document.getElementById("message").innerHTML = "You win!";
} else {
    document.getElementById("message").innerHTML = "You lose! " + selectedOption + " was your pick";
}
Run Code Online (Sandbox Code Playgroud)

  • 为了澄清:您将带有字符串的Array中的myOptions值覆盖为String,然后将该字符串与数字进行比较,该数字将"Option X"转换为NaN(不是数字),这不能与数字进行比较.只有当结果字符串为空时,条件才为真(因为空字符串""转换为0) (2认同)