Javascript:创建一个随机数学方程数组作为对象,20次

Javascript: Creating an Array of random math equations as objects, 20 times

本文关键字:数组 方程 对象 20次 随机数 创建 一个 Javascript      更新时间:2024-04-22

应该是什么样子

我的任务是动态创建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完成的第二项任务,如有任何帮助,我们将不胜感激。

这是我在行动中的一个例子。JS Fiddle

解决这样的问题时,我要做的第一件事就是简化它

首先制作一个只产生一个随机问题的函数,比如:

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