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

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/

10-10 00:09