我有以下问题:
编写一个函数,如果数组中的所有整数都是某个数字的因数,则返回true,否则返回false。
我尝试了下面的代码:
编写一个函数,如果数组中的所有整数都是某个数字的因数,则返回true,否则返回false。
我尝试了下面的代码:
function checkFactors(factors, num) {
for (let i=0; i<factors.length; i++){
let element = factors[i];
console.log(element)
if (num % element !== 0){
return false
}
else {
return true
}
}
}
console.log(checkFactors([1, 2, 3, 8], 12)) //➞ false
我的解决方案返回了true,这是错误的。我知道是else语句搞砸了它。但我想知道为什么else语句不能放在那里。
return true
放在循环外面,而将return false
留在循环里面。原因是,否则你的循环在第一次检查后就会真正停止,返回 true 或 false,而你希望它在发现某个数不是因子时立即返回 false。循环外的return true
将表示所有提供的数字都是参数的因子。 - Icepickle