javascript - 在 JavaScript 中生成带有随机数的按钮并插入到 DOM 中

标签 javascript dom random

嘿伙计们,我正在尝试做一个项目,但遇到了一个问题。我生成了 2 个随机数和运算符 - 然后我得到了这个方程的结果并将其存储在一个数组中。我想将其他 3 个随机生成的数字添加到数组中(所有数字都将显示在按钮上,用户可以单击其中一个来查看其结果是否正确)。它仅适用于数组中的第一个数字,这是正确的结果。我没能插入其他 3 个数字。你知道该怎么做吗?预先感谢您!

window.addEventListener('load', function () {

    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 allResults = data[results];
    var mes = alert(allResults);


    document.querySelector("#text").textContent = "Kolik je " + rnum1 + operator + rnum2 + "?";
});

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);
    var randomResult = generateRandomResults(3);
    results.push(randomResult);
    //return multiple values
    return [randomOperator, [results]];
}


function generateRandomResults(nums) {
    for (var i = 0; i < nums; i++) {
        ((Math.floor(Math.random() * 400) + 1))
    }
}

最佳答案

您的问题与generateRandomResults函数有关,该函数应该返回带有随机数的数组,但目前仅进行计算,而不将这些结果存储在任何地方。

相反,您需要创建一个数组并在生成随机数后返回它:

function generateRandomResults(nums) {
    var randomNumbers = [];
    for (var i = 0; i < nums; i++) {
        randomNumbers.push((Math.floor(Math.random() * 400) + 1));
    }
    return randomNumbers;
}

这样,当检索函数的结果(代码中的var randomResult =generateRandomResults(3))时,变量将存储三个随机数的数组。这意味着您将拥有 to concatenate,而不是将结果插入 results 数组中。你的 randomNumbers 数组。所以最后你的代码应该是:

...
results.push(correctResult);
var randomResults = generateRandomResults(3);
results.concat(randomResults);
return [randomOperator, [results]];
...

关于javascript - 在 JavaScript 中生成带有随机数的按钮并插入到 DOM 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54280237/

相关文章:

javascript - 需要在 Protractor 中播放本地 MP3 文件

javascript - Chrome 中的 DOM 访问

matlab - 如何在没有统计工具箱的情况下从 Gamma 分布中绘制随机数?

arrays - 如何返回随机字典

algorithm - 关于纯随机数系列的困惑

Javascript 正则表达式替换有时不起作用

javascript - 在 Fullcalendar.js 中显示事件时出现问题

javascript - JSON 字符串未将数据加载到本地存储

Angular 2/4 - 从 DOM 中删除组件,但保留在内存中

javascript - 用Jquery,如何获取按钮绑定(bind)的功能