私は解決できないような問題に遭遇しました。以下のコードをご覧ください:Javascriptコードは正常に動作しています...ほとんど常に
<script>
function createFunctions() {
var first = ["", "", ""];
var second = ["", "", ""];
var func = ["", ""];
var sign = ["", ""];
for (i = 0; i < 3; i++) {
first[i] = (Math.round(Math.random() * 9) + 1);
second[i] = (Math.round(Math.random() * 9) + 1);
sign[i] = (Math.round(Math.random()));
if (sign[i] == "1") {
sign[i] = '+';
} else {
sign[i] = '-';
}
if (first < 2) {
func[i] = 'f(x) = x ' + sign[i] + ' ' + second[i] + '<p>';
} else {
func[i] = 'f(x) = ' + first[i] + 'x ' + sign[i] + ' ' + second[i] + '<br>';
}
}
for (i = 0; i < 3; i++) {
document.getElementById("createFunctions").innerHTML += 'Function ' + [i + 1] + ': ' + func[i];
}
//whichFunction=
findAnswers(first, second, sign);
}
function findAnswers(first, second, sign, rand) {
var num = ["", "", ""];
rand = (Math.round(Math.random() * 1));
document.getElementById("findAnswers").innerHTML = 'Which <b>one (or more)</b> of these functions holds true, when plugged in with the following <b>values of x</b>? (' + [rand + 1] + ')<br>';
for (i = 0; i < 3; i++) {
num[i] = (Math.round(Math.random() * 9));
}
for (i = 0; i < 3; i++) {
ans = 0;
if (sign[rand] == "+") {
ans = [first[rand] * num[i]] + second[rand];
} else {
ans = [first[rand] * num[i]] - second[rand];
}
document.getElementById("findAnswers").innerHTML += [i + 1] + '. You put in a ' + num[i] + ': ' + ans + '<br>';
}
}
</script>
<BODY onload=createFunctions()>
<b>A Machine Called Effex</b>
<p><input type="button" value="New Examples" onclick="history.go(0)" VALUE="Refresh"></p>
<p id="createFunctions"></p>
<p id="findAnswers"></p>
すべてがうまくいきます。場合によっては、関数を計算するときを除いて、コードにxを掛けた後、加算(または減算)する代わりに、2番目の値を最初の値に連結するだけです。
15行目で 'first [i] <2'であってはなりませんか? – mynawaz
36行目と38行目の '[first [rand] * num [i]] + second [rand]'に大括弧をかっこに変更し、これらの行でparseIntを使ってオペランドをintにキャストしてみてください – mynawaz
配列を変更しました'var array = [""、 ""、 "]'から 'var array = []'に空の配列を作成し、 'i'はforループ内で残りを行います。 http://jsfiddle.net/zzx5w79a/あなたの質問にこのリンクを含めることができます。私は "時々..、コードが倍増.."を見つけることができませんでした – caramba