Javascript Usng jquery需要创建无余数的除法和

Javascript Usng jquery需要创建无余数的除法和,javascript,jquery,Javascript,Jquery,在我目前的项目中,我正在为珠算学生创建随机数学问卷。因此,考试页面将提供一个接一个的总结。基于学生水平,我在前端使用jquery和渲染生成总和,以获得学生答案进行验证。在特定级别中,我需要生成余数为零的除法 所以,我使用下面的函数来生成有时返回未定义的和 tripleDigitSingleDigitWithoutRemainder: function() { var dividend = BOBASSESSMENT.general.randomIntFromInt

在我目前的项目中,我正在为珠算学生创建随机数学问卷。因此,考试页面将提供一个接一个的总结。基于学生水平,我在前端使用jquery和渲染生成总和,以获得学生答案进行验证。在特定级别中,我需要生成余数为零的除法

所以,我使用下面的函数来生成有时返回未定义的和

    tripleDigitSingleDigitWithoutRemainder: function()
    {
        var dividend = BOBASSESSMENT.general.randomIntFromInterval(100, 999);
        var divisor = BOBASSESSMENT.general.randomIntFromInterval(2, 9);
        console.log("out: " + dividend + "_" + divisor);
        console.log("remainder: " + (dividend % divisor));
        var result_val = "";

        // result_val  = dividend % divisor;


        if(dividend % divisor != 0)
        {
            console.log('loop_again');
            BOBASSESSMENT.general.tripleDigitSingleDigitWithoutRemainder();
        }else{
            result_val = dividend + "_" + divisor;
            console.log("return: " + result_val);
        }
        console.log("final_return: " + result_val);
        return result_val;

    }
因此,请在这里帮助我做进一步的工作

要求是一个接一个地显示问题,我需要一个除数值和除数值,这个除数值的余数为0。这意味着16%2=0与16%3=1不同


你能在这里请人帮忙吗。

如评论中所说。通过创建一个产品来创建一个工作部门不是更好吗

函数生成{ //数字[2-9] var small=Math.floorMath.random*8+2 //这将给出电流分配器的极限值 var限制=Math.ceil900/小 //我们现在检查最小值 var最小值=数学地板100/小 //我们创建一个具有给定限制的新随机变量 var big=Math.ceilMath.random*限制+最小值 //创建产品 var乘积=大*小; 返回{问题:产品+'/'+小,回答:大} }
console.loggenerate如注释中所述,这里有一种使用循环以不同值而不是递归重试的方法:

tripleDigitSingleDigitWithoutRemainder: function()
{
    for(;;)
    {
        var dividend = BOBASSESSMENT.general.randomIntFromInterval(100, 999);
        var divisor = BOBASSESSMENT.general.randomIntFromInterval(2, 9);

        if(dividend % divisor == 0)
        {
            var result_val = dividend + "_" + divisor;
            console.log("return: " + result_val);
            return result_val;
        }
    }
}
这里我们有一个无限循环,我们一直循环,直到我们有一个有效的问题,然后立即返回,当我们这样做。对于是编写无限循环的一种方法:还有其他方法,例如while true{…},如果这对您来说更清楚的话


然而,我更喜欢Wimanicesir答案中构造正确值的方法,而不是反复尝试,直到找到一个,这可能需要更多的步骤。

生成除数和答案,即示例中的8和2,然后将它们相乘,得到第一个数字16,不是更容易吗?然后你知道16/2没有余数,因为你是这样构造的。至于你现有的代码,你递归地调用TripleDigitSingleDigitWithoutResister来重试,但是放弃了从中得到的结果。保存递归的结果,即result_val=bobasessment.general.TripleDigitSingleDigitWithout余数;但是我更清楚的是,如果函数中有一个循环,当你没有得到一个有效的结果时,这个循环会重复,而不是递归。是的,我们可以这样生成。但是,在某些情况下,我们有一些规则,比如股息应该是3位数或2位数。为此,我首先创造红利。谢谢@Rup。是的,我现在拿到了。将函数分配给“result_val”变量时,该问题得到解决。再次感谢。如果可能的话,请给我一个使用循环而不是递归的例子。好的循环例子,但是我仍然想说,我的答案是基于你的评论建议将更快地生成,因为它不会生成错误的答案。