gpt4 book ai didi

javascript - 为什么在 true switch 语句后无法得到预期结果?

转载 作者:行者123 更新时间:2023-12-01 02:47:50 25 4
gpt4 key购买 nike

尝试查找整数的所有可整除数,但在 switch 循环后得到错误答案。

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 作为 divNumbers,其中 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 - 为什么在 true switch 语句后无法得到预期结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47147372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com