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

时间:2015-04-07 20:10:52

标签: javascript arrays function if-statement

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

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

fiddle it.

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";
}

2 个答案:

答案 0 :(得分: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";
}

答案 1 :(得分:3)

出于某种原因,您正在检查myOptions <= 1 - myOptions是否永远不是数字,它将始终是其中一个值的字符串。

更新了jsfiddle:http://jsfiddle.net/troh2bh4/15/