0

我正在尝试制作一个因子计算器。您输入一个数字,它会找出该数字的因数。如果你将原始数字除以其因子,你会得到零,我试图在这里实现它,这样当它以“0”返回时,它会被推送到一个数组并打印该数组。

var number = prompt("Number?")
    
var array = []   
    
function modulo(a, b)
    {
    return a % b;
    }
    
 for (counter = 0; counter < number; counter++)  
    {
        var result = modulo(number, counter)
        if (result = 0)
           {
           array.push(counter) 
           }
    }
    
    for (counter = 0; counter < array.length; counter++)
    {
        alert(array[counter])
    }

发生的情况是出现提示,我输入一个数字,但没有任何反应。有人可以帮忙吗?

4

2 回答 2

2

这是问题所在,您使用的是=(赋值运算符)而不是==比较运算符

for (counter = 0; counter < number; counter++)
{
    var result = modulo(number, counter)
    if (result == 0) // in your code this is result = 0
    {
        array.push(counter)
    }
}

工作演示


完整代码:

var number = prompt("Number?")
var array = []
function modulo(a, b)
{
    return a % b
}
for (counter = 0; counter < number; counter++)
{
    var result = modulo(number, counter)
    if (result == 0)
    {
        array.push(counter)
    }
}

for (counter = 0; counter < array.length; counter++)
{
    alert(array[counter])
}
于 2016-04-01T10:55:49.317 回答
2

要检查值是否相等,请使用==and not =

if (result == 0)
于 2016-04-01T10:55:58.040 回答