Javascript 在while循环中检查数字的因子时获取无穷循环

Javascript 在while循环中检查数字的因子时获取无穷循环,javascript,Javascript,我正在努力解决无限循环问题,而数组练习的实现需要用Java脚本函数方式完成: 我有一个代码,它创建一个数组并用满足条件的数字填充其值: Each array element has a value, which we draw from the range <100, 200> until the sum of digits is a number having exactly two dividers, not counting 1 and this one numbers. 对

我正在努力解决
无限循环
问题,而数组练习的实现需要用Java脚本函数方式完成: 我有一个代码,它创建一个数组并用满足条件的数字填充其值:

Each array element has a value,
which we draw from the range <100, 200> until the sum of digits is
a number having exactly two dividers, not counting 1 and this one
numbers.
对于较小的
minArraySize
maxArraySize
值,有时我会收到理想的结果,但对于像IDE这样的参数,我的结果是冻结的。在粘贴了上述代码的在线编辑器上,我在线接收到有关无限循环的信息:

while (countNumberFactors(digitsSum) === 2)

我试图通过反复试验来调查根本原因,但没有找到解决办法。对于如何解决上述
无限循环
问题的建议,我将不胜感激。

您正在更改
编号
,但正在检查
数字总和
。要解决此问题,只需在while循环中添加
digitsum=sumdights(number)
。e、 g

const generateNumberUntilConditionNotAchieve = (min, max) => {
  let number = generateNumber(min, max);
  const digitsSum = sumDigits(number);
  while (countNumberFactors(digitsSum) === 2) {
    number = generateNumber(min, max);
    digitsSum = sumDigits(number);
  }
  return number;
}

万分感谢,疲劳占据了上风。。“现在它按预期工作了。”马丁别担心,我们都犯过这样的错误。确保标记为答案,以便未来的谷歌看到解决方案!我会的,还需要3分钟。谢谢
const generateNumberUntilConditionNotAchieve = (min, max) => {
  let number = generateNumber(min, max);
  const digitsSum = sumDigits(number);
  while (countNumberFactors(digitsSum) === 2) {
    number = generateNumber(min, max);
    digitsSum = sumDigits(number);
  }
  return number;
}