为Javascript/JQuery中的每个按钮生成随机答案

为Javascript/JQuery中的每个按钮生成随机答案,javascript,jquery,random,Javascript,Jquery,Random,我一直在为我的问题倾诉关于堆栈溢出的答案。所有这些都导致了无限循环,这导致我的代码多次崩溃。让我先说我是初学者。我还想重申一下,对于我当前的项目,我必须按照要求使用Javascript/JQuery。 我正在创建一个生成随机方程的数学问答游戏。随着随机方程,我想产生随机答案。我已经生成了随机方程和答案,但由于某些原因,我无法让我的测验应用程序生成唯一的随机答案而不崩溃。我已经尝试过先填充数组,然后对数组进行排序,然后剪接出重复项并在数组中重复。我还尝试在数组中填充随机数之前检查重复项。似乎都不管

我一直在为我的问题倾诉关于堆栈溢出的答案。所有这些都导致了无限循环,这导致我的代码多次崩溃。让我先说我是初学者。我还想重申一下,对于我当前的项目,我必须按照要求使用Javascript/JQuery。 我正在创建一个生成随机方程的数学问答游戏。随着随机方程,我想产生随机答案。我已经生成了随机方程和答案,但由于某些原因,我无法让我的测验应用程序生成唯一的随机答案而不崩溃。我已经尝试过先填充数组,然后对数组进行排序,然后剪接出重复项并在数组中重复。我还尝试在数组中填充随机数之前检查重复项。似乎都不管用。我知道有一些类似的问题与我的类似,当它们不包含在我的代码中时,它们就起作用了。我想我走错了方向,在这种情况下,我想要第二双眼睛。谢谢

让a,b,op,correct回答,ansb;
const新手=()=>{
常量num=()=>~~(Math.random()*10)+1
a=num()
b=num()
op=[“*”、“+”、“/”、“-”][Math.floor(Math.random()*4)];
$(“#问题”).text(${a}${op}${b}').show()
正确答案=(()=>{
开关(op){
案例“*”:返回a*b
案例“+”:返回a+b
案例“/”:返回a/b
案例“-”:返回a-b
}
})()
如果(!Number.isInteger(正确答案)){
新手()
//公式.pop()
}
让randomAnswers=[correctAnswer]
for(设x=0;randomAnswers.length<4;x++){
//!我需要在数组被推入后对其进行排序??
设rand=Math.floor(Math.random()*correctAnswer+20)
//随机答案。推送(兰德)
//log(randomAnswers.indexOf(x),randomAnswers.lastIndexOf(x))
//if(randomAnswers.indexOf(rand)!==randomAnswers.indexOf(x)){
随机答案。推送(兰德)
// }
}
让randAnsw=randomAnswers.sort(()=>Math.random()-0.5)
$(“#a0”).text(randAnsw[0]).attr(“value”,`${randAnsw[0]}`)
$(“#a1”).text(randAnsw[1]).attr(“value”,`${randAnsw[1]}`)
$(“#a2”).text(randAnsw[2]).attr(“value”,`${randAnsw[2]}`)
$(“#a3”).text(randAnsw[3]).attr(“value”,`${randAnsw[3]}`)
}
//常数nextNov=()=>{
//新手()
//选择Novanswer()
// }
//const selectNovAnswer=()=>{
//$('#应答按钮.btn')。每个(函数(){
//$(此).unbind(“click”).on(“click”,函数(){
//if($(this.attr(“value”)==correctAnswer){
//NextNov()
//}其他{
////startOver()
////$(“.answ”).attr(“禁用”、“禁用”)
//$(“#问题”).append(`=${correctAnswer}`)
//             }
//         })
//     })
// }
$(“#开始”)。在(“单击”上,函数(){
新手()
//选择Novanswer()
})

快速数学示例
开始

尝试在数字的b/w范围内生成随机数,以便始终获得唯一的数字

const randombtrrange=(最小,最大)=>Math.floor(Math.random()*(max-min+1)+min);
//[num-10,num,num+10,num+20]
const generate3Randoms=(num)=>{
返回[
随机数(num-10,num-1),
随机数(num+1,num+10),
随机数(num+11,num+20)
]
}
常数回答=12
console.log(
[回答,…生成3个随机数(回答)]
.sort(=>Math.random()-0.5)

)
您还可以根据
运算符定义此范围,并在将来定义
correctAnswer
,以使答案更接近。谢谢,这是我需要的。我没有考虑为我试图生成的所有3个答案设置最大/最小值。我还将研究您的建议,以便更仔细地定义范围。