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

strとが定義されていると仮定するとrandomNum3、これは乱数を返すはずです。

于 2013-01-28T14:40:48.943 に答える