javascript - 如何通过几个函数计算一个简单的方程? (DOM)

标签 javascript dom

嘿伙计们,我正在做这个小项目,我必须随机生成 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/

相关文章:

javascript - 特定地点 ID 的照片

javascript - 根据url显示div

javascript - 为什么我的 Javascript 中的两个正则表达式文字在属性上有所不同?

javascript - 有没有办法从片段重建有效的 HTML 结构?

javascript - 如何使用 jQuery 附加两个创建的 html 元素

jquery $(this) 返回 [object object] 而不是 DOM 引用

javascript - JSFiddle 示例 - React,无法更新渲染

javascript - 使用 redux-thunk 和 redux-observable

javascript - 在移动浏览器上使用缓存 API 的最大文件大小是多少

jquery - 我的 qUnit 测试套件需要许多不同的全页 DOM 示例