-3

当我eval(command)在控制台中尝试时,它只会给我“未定义”。我想要做的是将“命令”作为一行。如何?

str = ""
command = ""

if (document.checks.cb1.checked) {str += " && randomNum3 != 1"}
if (document.checks.cb2.checked) {str += " && randomNum3 != 2"}
if (document.checks.cb3.checked) {str += " && randomNum3 != 3"}
if (document.checks.cb4.checked) {str += " && randomNum3 != 4"}

command = "while (str == str" + str + ") {randomNum3 = Math.floor(Math.random() * (1 - 5)) + 5}"
eval(command)
4

1 回答 1

3

您可以在没有eval. 这应该可以解决问题:

var num = [];

if (document.checks.cb1.checked) {num.push(1)}
if (document.checks.cb2.checked) {num.push(2)}
if (document.checks.cb3.checked) {num.push(3)}
if (document.checks.cb4.checked) {num.push(4)}

while (num.indexOf(randomNum3) == -1) {
    randomNum3 = Math.floor(Math.random() * (1 - 5)) + 5;
}

假设strrandomNum3已定义,这应该会返回一个随机数。

于 2013-01-28T14:40:48.943 回答