尝试查找整数的所有可除数,但在切换循环后得到错误答案。
function divisors(integer) {
let divNumbers = []
switch(true) {
case (integer % 2 === 0):
divNumbers.push(2);
case (integer % 3 === 0):
divNumbers.push(3);
case (integer % 4 === 0):
divNumbers.push(4);
case (integer % 5 === 0):
divNumbers.push(5);
break;
default: divNumbers.push(integer)
}
return divNumbers;
};
divisors(15)
将3、4、5用作divNumber,其中4不应在此处。为什么?
最佳答案
这是不会被硬编码的正确解决方案:
var divisors = function (num) {
const initial = num, result=[];
while(num--) {
if (initial % num ===0) {
result.push(num);
}
}
return result;
}
如果要将数字本身除以除数,请执行以下操作:
var divisors = function (num) {
const initial = num, result=[];
num++;
while(num--) {
if (initial % num ===0) {
result.push(num);
}
}
return result;
}
关于javascript - 为什么在真实的switch语句之后无法获得预期的结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47147372/