当我在控制台中尝试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)
答案 0 :(得分: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;
}
假设str
和randomNum3
已定义,则应返回一个随机数。