Javascript随机正确答案

Javascript随机正确答案,javascript,random,Javascript,Random,我想在其他插槽之间随机生成错误的编号 正确答案是4,但我想让其他插槽在正确答案之间给出错误答案 有人能给我一个实现这一目标的线索吗?提前谢谢你 对不起,我的英语不好,如果你不明白我的问题 var operators = { "signOne": [ { sign: "+", method: function(a,b) {return a+b} },

我想在其他插槽之间随机生成错误的编号

正确答案是4,但我想让其他插槽在正确答案之间给出错误答案

有人能给我一个实现这一目标的线索吗?提前谢谢你

对不起,我的英语不好,如果你不明白我的问题

    var operators = {
        "signOne": [
            {
                sign: "+",
                method: function(a,b) {return a+b}
            },
            {
                sign: "-",
                method: function(a,b) { return a-b}
            }
        ]};
var selectedOperatorA = Math.floor(Math.random()*operators.signOne.length);
this.hiddenTotalValue = operators.signOne[selectedOperatorA].method(this.valueA, this.valueB);

这是我正确答案的输出。

您可以计算真实答案
calcAnswer()
,然后创建一个函数来创建一个小于真实答案的随机数
calcOtherAnswers()
,其中只要
结果
答案
(4或任何情况)然后生成一个数字。

尝试使用Math.random();函数生成随机数

HTML

<div id="first"></div>
<div id="second"></div>
<div id="third"></div>

我看到你发布了关于javascript的问题,我正在发布一个假设使用该语言的答案。 在Mozilla上,您可以使用函数选择最大值和最小值

function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min)) + min;
}
输入适当的最小值和最大值

var operators = {
        "signOne": [
            {
                sign: "+",
                method: function(a,b) {return a+b}
            },
            {
                sign: "-",
                method: function(a,b) { return a-b}
            }
        ]};
var selectedOperatorA = Math.floor(Math.random()*operators.signOne.length);
this.hiddenTotalValue = operators.signOne[selectedOperatorA].method(this.valueA, this.valueB);
这是我正确答案的输出。

您可以:

  • 建立一个包含正确答案、较小错误答案和较大错误答案的列表
  • 使用自定义随机函数对列表进行排序
代码:

示例输出:

[2, 8, 4]

如果需要,正确答案在列表中的位置将由
list.indexOf(答案)给出

一种简单的方法是使用数组。将正确的值推入其中,然后创建一个循环,该循环创建随机数,如果它们还不在数组中,则将它们相加,直到数组具有所需的大小/长度。

这样创建图案。正确答案始终是答案的最大值,这将导致通过选择中间值可以赢得的测验。玩家不需要解决数学任务,只要他注意到模式就可以找到答案。@MalteKöhrer我完全同意,但我认为这就是OP的要求。事实上,他并没有具体说明答案的位置是否应该改变。这是我自己的假设。谢谢你的回答。
var answer = 9 - 5,
    list = [
      answer,
      answer - 1 - ((Math.random() * 10) | 0),
      answer + 1 + ((Math.random() * 10) | 0)
    ];

list.sort(function(a, b) { return Math.random() - 0.5; });

console.log(list);
[2, 8, 4]