Javascript JS同时确保数字可以';我们不能再分裂了

Javascript JS同时确保数字可以';我们不能再分裂了,javascript,jquery,web,while-loop,do-while,Javascript,Jquery,Web,While Loop,Do While,我遇到了一个问题,JavaScript编码JS没有带来我想要的结果 我想要这样的结果: Hasil 10, Sisa 0 Hasil 5 Sisa 0 Hasil 2 Sisa 1 Hasil 1 Sisa 0 如果发生上述情况,我想将20除以2,以确保图20不能再次除以 但是当我用JS制作的时候,JS甚至不能产生任何东西。这是我的代码: function bagihbs( numbers, bagin ) { var res = ""; var idx = 0; wh

我遇到了一个问题,JavaScript编码JS没有带来我想要的结果

我想要这样的结果:

Hasil 10, Sisa 0
Hasil 5 Sisa 0
Hasil 2 Sisa 1
Hasil 1 Sisa 0
如果发生上述情况,我想将20除以2,以确保图20不能再次除以

但是当我用JS制作的时候,JS甚至不能产生任何东西。这是我的代码:

function bagihbs( numbers, bagin ) {
    var res = "";
    var idx = 0;
    while ( idx < parseInt(numbers / bagin) ) {
        var bagi = parseInt(numbers / bagin);
        var sisa = numbers % bagin;

        res += "Hasil = "+bagi+", Sisa = "+sisa;

        return bagihbs(bagi, bagin);

        break;
    }
    return res;
}
console.log(bagihbs(20, 2));
函数bagihbs(数字,bagin){
var res=“”;
var-idx=0;
while(idx

请帮我举个例子:D。还有我的

您必须添加当前值,然后返回,因为res会更改递归每次迭代的每个内部范围。而且res不是全球性的

添加了
res
=>
返回res+bagihbs(bagi,bagin)

检查代码段
函数bagihbs(数字,bagin){
var res=“”;
var-idx=0;
while(idx控制台日志(bagihbs(20,2))您没有在问题中阐明,如果您要除以的数字大于起始数字,您希望发生什么情况,因此这里有两种可能性

此解决方案将产生预期的输出,如果数字不能被给定数字整除,则将输出一个空白字符串

function bagihbs( numbers, bagin ) {
    var bagi = parseInt(numbers / bagin),
        sisa = numbers % bagin;

    if(bagi > 0) {
        return "Hasil = " + bagi + ", Sisa = " + sisa +
               "\n" + bagihbs(bagi, bagin);
    }

    return '';
}
console.log(bagihbs(20, 2));
此解决方案将为最终除法输出0和余数

function bagihbs( numbers, bagin ) {
    var bagi = parseInt(numbers / bagin),
        sisa = numbers % bagin,
        res = "Hasil = " + bagi + ", Sisa = " + sisa;

    if(bagi > 0) {
        return res + '\n' + bagihbs(bagi, bagin);
    }

    return res;
}
console.log(bagihbs(20, 2));
两者之间最大的区别在于计算返回字符串的位置。如果要过账剩余部分,则在检查是否有其他除法之前,会先计算剩余部分。如果您不想将剩余部分过账,则仅当您知道还有其他部门要做时,才会创建该部分。我还删除了您的循环,因为它是不必要的,因为您是递归调用函数的,并且循环基本上是作为if语句运行的