嘿伙计们,我正在做这个小项目,我必须随机生成 2 个数字和运算符。然后我必须将这个方程的结果存储在一个包含 3 个随机生成的数字的数组中。之后,所有这些结果将显示在按钮上,用户可以通过单击正确的答案来选择。
我已经到了代码可以用于生成数字和运算符的地步,但是我用于获取正确结果并生成其他随机三个结果的代码似乎不起作用。有谁知道如何解决它?预先感谢您!
<div id="count">
<div id="text">
</div>
</div>
<script>
window.addEventListener('load', function() {
var rnum1 = generateRandomNumber1 ();
var rnum2 = generateRandomNumber2 ();
var randomOperator = generateRandomOperatorAndCorrectResult ();
document.querySelector("#text").textContent = "How much is " + rnum1 + randomOperator + rnum2 + "?";
});
function generateRandomOperatorAndCorrectResult () {
var operators = [{
sign: "+",
method: function(rnum1,rnum2){ return rnum1 + rnum2; } },
{
sign: "*",
method: function(rnum1,rnum2){ return rnum1 * rnum2; } },
{
sign: "-",
method: function(rnum1,rnum2){ return rnum1 - rnum2; }
}];
var results = [];
var selectedOperator = Math.floor(Math.random()*operators.length);
var randomOperator = operators[selectedOperator].sign;
var correctResult = (operators[selectedOperator].method); //til this point it works
results.push(correctResult);
return randomOperator;
return results;
}
function generateRandomResults () {
for(var i=0; i < 4; i++) {
results.push((Math.floor(Math.random() * 400) + 1))}
return results;
}
function generateRandomNumber1 () {
var rnum1 = (Math.floor(Math.random() * 20) + 1);
return rnum1;}
function generateRandomNumber2 () {
var rnum2 = (Math.floor(Math.random() * 20) + 1);
return rnum2;}
</script>
最佳答案
var rnum1 = generateRandomNumber1 ();
var rnum2 = generateRandomNumber2 ();
//pass the random numbers to the function
var data= generateRandomOperatorAndCorrectResult(rnum1,rnum2);
//data=["+", [5]]
var operator=data[0];
var result= data[1];
。 。 .
function generateRandomOperatorAndCorrectResult (num1, num2) {
var operators = [{
sign: "+",
method: function(rnum1,rnum2){ return rnum1 + rnum2; } },
{
sign: "*",
method: function(rnum1,rnum2){ return rnum1 * rnum2; } },
{
sign: "-",
method: function(rnum1,rnum2){ return rnum1 - rnum2; }
}];
var results = [];
var selectedOperator =
Math.floor(Math.random()*operators.length);
var randomOperator = operators[selectedOperator].sign;
var correctResult = (operators[selectedOperator].method(num1, num2)); //pass the numbers to the methods
results.push(correctResult);
//return multiple values
return [randomOperator,results];
}
关于javascript - 如何通过几个函数计算一个简单的方程? (DOM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54278039/