2016-04-10 9 views
-1

What it's supposed to look likeJavascriptを:私は動的に20の数学の問題の作成を担当しています20回

、オブジェクトとしてランダムな数学の方程式の配列を作成します。数学の問題は、レンダリングされる前にオブジェクトの配列として作成する必要があります。私が取り組んでいる部分は、配列内のオブジェクトとして20種類の異なる方程式を作成し、それらをテーブルに呼び出すことです。ここまで私がこれまで持っていたことがあります。

<script> 

    // creates a random number from 1-100 
var randNum1 = Math.floor(Math.random() * 100) + 1; 

var randNum2 = Math.floor(Math.random() * 100) + 1; 

// creates a random operator 
var op = ["*", "+", "/", "-"][Math.floor(Math.random() * 4)]; 


var problemList = [{number1: randNum1, operator: op, number2: randNum2}, 

]; 



var problems, i; 


var displayProblems = function (problems) { 
    // open the table 
    var str = "<table class=table>"; 

    for (i = 0; i < problems.length; i++) { 
     str += "<tr>"; 
     str += "<td>" + problems[i].number1 + " " + problems[i].operator + " " + problems[i].number2 + " " + "<input type='text' class='answer' id='answer_" + i + "' /></td>"; 
     str += "</tr>"; 

    } 

    str += "</table>"; 

    document.getElementById("mathGrid").innerHTML = str; 
}; 

window.onload =function() { 
    displayProblems(problemList); 

}; 

</script> 

私はこれを一日中終わらせており、これを行う方法を理解することはできません。これはjavascriptのための私の2番目の割り当てであり、どんな助けも高く評価されるでしょう。

ここに私が実際に行っているものの例があります。 JS Fiddle

答えて

1

このような問題を解決するときにまずやるべきことは、単純化することです。そのように、1つだけランダムに問題を作成し、機能させることにより

スタート:その機能を持った後、あなたはすでにそれをテストし、何かの作業を見ることができる

function generateProblem() { 
    // creates a random number from 1-100 
    var randNum1 = Math.floor(Math.random() * 100) + 1; 
    var randNum2 = Math.floor(Math.random() * 100) + 1; 

    // creates a random operator 
    var op = ["*", "+", "/", "-"][Math.floor(Math.random() * 4)]; 

    return {number1: randNum1, operator: op, number2: randNum2}; 
} 

注意してください。

その後、そのうち20個の方がはるかに簡単ですが、関数を20回呼び出して結果を配列に追加するだけです。どちらの手によって:

var problemList = [ 
    generateProblem(), 
    generateProblem(), 
    generateProblem() 
    ... 
]; 

またはループ使用して:あなたの応答のための

var problemList = []; 
while (problemList.length < 20) { 
    problemList.push(generateProblem()); 
} 
+0

感謝を。今は 'var problemList'がオブジェクトの配列であると考えられますか?そして、私はまだforループで20種類の問題を印刷することができますか? あなたがそれを壊した方法は非常に役に立ちます。私の本が「試してみる」方法を説明するよりもはるかに簡単です。 –

+0

@Gorgon_Unionはい、これはまだオブジェクトの配列です。これはまさに以前のものです。 – SlySherZ

関連する問題