Javascript 循环逻辑
我使用的是javascript函数,循环应该运行10次,在这10次中,它应该抛出一个基于、+和-操作的随机问题,其中也应该有4个“+”问题、3个“-”问题和3个“问题”。循环不应该运行超过10次,有人请为这个框架一个逻辑 到目前为止,我的代码是:Javascript 循环逻辑,javascript,Javascript,我使用的是javascript函数,循环应该运行10次,在这10次中,它应该抛出一个基于、+和-操作的随机问题,其中也应该有4个“+”问题、3个“-”问题和3个“问题”。循环不应该运行超过10次,有人请为这个框架一个逻辑 到目前为止,我的代码是: <script type="text/javascript"> var op=new Array(); var addCount=0; var subCount=0; var
<script type="text/javascript">
var op=new Array();
var addCount=0;
var subCount=0;
var mulCount=0;
var counter=0;
var no;
op[0]="+";
op[1]="-";
op[2]="x";
Array.prototype.chooseRandom = function()
{
return this[Math.floor(Math.random() * this.length)];
};
var a = [1, 2];
var b = [0, 2];
var c = [0, 1];
no=Math.floor((Math.random()*3));
while(addCount < 4|| subCount < 3 || mulCount < 3)
{
no=Math.floor((Math.random()*3));
if(no==0)
{
if(addCount<4)
{
addCount++;
var op1=Math.floor(Math.random() * (99 - 10+1)) + 10;
var op2=Math.floor(Math.random() * (99 - 10+1)) + 10;
}
else
{
no=a.chooseRandom();
}
}
else if(no==1)
{
if(subCount<3)
{
subCount++;
var no1=Math.floor(Math.random() * (99 - 10+1)) + 10;
var no2=Math.floor(Math.random() * (99 - 10+1)) + 10;
if(no1>no2)
{
var op1=no1;
var op2=no2;
}
else
{
var op1=no2;
var op2=no1;
}
}
else
{
no=b.chooseRandom();
}
}
else if(no==2)
{
if(mulCount<3)
{
mulCount++;
var op1=Math.floor(Math.random() * (99 - 10+1)) + 10;
var op2=Math.floor(Math.random() * (9 - 1+1)) + 1;
}
else
{
no=c.choseRandom();
}
}
counter++;
}
</script>
var op=新数组();
var addCount=0;
var子计数=0;
var-mulCount=0;
var计数器=0;
var-no;
op[0]=“+”;
op[1]=“-”;
op[2]=“x”;
Array.prototype.chooseRandom=函数()
{
返回此[Math.floor(Math.random()*this.length)];
};
var a=[1,2];
VarB=[0,2];
var c=[0,1];
否=数学楼层((数学随机()*3));
while(addCount<4 | | subCount<3 | | mulCount<3)
{
否=数学楼层((数学随机()*3));
如果(否==0)
{
如果(addCount生成一个包含所需数量的+
、-
和*
的数组,则使用下面的函数对其进行随机排序:
arr.sort(function() {return 0.5 - Math.random()})
希望它能帮助-
<script type="text/javascript">
function shuffle(o) {
for (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
}
function getQuestions(){
var operators = shuffle(["+", "+", "+", "+", "-", "-", "-", "x", "x", "x"]);
var a = [1, 2, 3, 4, 5, 6];
var counter = 0;
Array.prototype.chooseRandom = function () {
return this[Math.floor(Math.random() * this.length)];
};
while (counter < 10) {
var op1 = a.chooseRandom();
var op2 = a.chooseRandom();
alert(op1 + operators[counter] + op2 + "?")
counter++;
}
}
getQuestions();
</script>
函数洗牌(o){
对于(var j,x,i=o.length;i;j=parseInt(Math.random()*i),x=o[--i],o[i]=o[j],o[j]=x);
返回o;
}
函数getQuestions(){
var运算符=随机排列([“+”、“+”、“+”、“+”、“-”、“-”、“-”、“x”、“x”);
VarA=[1,2,3,4,5,6];
var计数器=0;
Array.prototype.chooseRandom=函数(){
返回此[Math.floor(Math.random()*this.length)];
};
while(计数器<10){
var op1=a.chooseRandom();
var op2=a.chooseRandom();
警报(op1+操作员[计数器]+op2+“?”)
计数器++;
}
}
获取问题();
发布您尝试过的代码far@polin,这是代码,请检查它为什么0.5??你能详细解释逻辑吗?因为排序函数需要返回负数或正数。而random()返回0到1,表示始终为正。将其减去0.5,返回的值范围为-0.5到0.5。但我不需要负值,在整数运算中需要负值?@Hazel对运算进行排序。您还可以详细解释吗,我们需要0.5进行“排序”!!???@Hazel-shuffle用于洗牌操作符数组,以便您可以获得一个随机操作符数组。