Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-最大公约数-卡在无限循环中_Javascript_Algorithm_While Loop - Fatal编程技术网

JavaScript-最大公约数-卡在无限循环中

JavaScript-最大公约数-卡在无限循环中,javascript,algorithm,while-loop,Javascript,Algorithm,While Loop,我正在给计算机写一个函数,它是多个数的最大公约数,我被困在这个无限while循环中: const gcd = (...nums) => { let answer = Math.min.apply(null, nums); while (answer > 0) { for (let index in nums) { if (nums[index] % answer !== 0) { answer--

我正在给计算机写一个函数,它是多个数的最大公约数,我被困在这个无限while循环中:

const gcd = (...nums) => {
    let answer = Math.min.apply(null, nums);
    while (answer > 0) {
        for (let index in nums) {
            if (nums[index] % answer !== 0) {
                answer--;
                break;
            } else if (index === (nums.length-1)){
               return answer;
            }
        }
    }
}

gcd(20, 155, 30)
对于最后一行的测试用例,我得到了5,这是正确的答案。但似乎一旦答案达到5,我就无法得到if或else if语句,我陷入了无限while循环


有什么建议吗

您可以将
for in
循环替换为简单的
for
循环。不要使用
for in
循环来迭代数组

const gcd=(…nums)=>{
让answer=Math.min.apply(null,nums);
while(答案>0){
for(让index=0;index控制台日志(gcd(2015530))您可以将
for in
循环替换为简单的
for
循环。不要使用
for in
循环来迭代数组

const gcd=(…nums)=>{
让answer=Math.min.apply(null,nums);
while(答案>0){
for(让index=0;index