首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有限循环崩溃浏览器

有限循环崩溃浏览器
EN

Stack Overflow用户
提问于 2017-09-14 23:59:10
回答 1查看 33关注 0票数 0

我希望有人能解释一下我的for循环出了什么问题。如果我输入for循环,就好像(Arguments2){ stable = rere(stable,arguments2);}它可以正常工作。我可能有6个以上的参数,我想知道为什么这个循环不能正常工作。

代码语言:javascript
复制
function sym() {
  function rere(a,b){
    var check = [];
    for(i=a.length-1; i>=0; i--){
      for(x=b.length-1; x>=0; x--){
        if(a[i] == b[x]){
          check.push( a.splice(i,1) );         
        }
      }
    }

    for(i=b.length-1; i>=0; i--){
      for(x=check.length-1; x>=0; x--){
        if(b[i] == check[x][0]){
          b.splice(i,1);
        }
      }
    }
    var stable = a.concat(b);
    return stable;
  }
  var stable = rere(arguments[0], arguments[1]);

//problem is HERE. The for loop repeating rere function crashes repl.it

  for(i=2; i<arguments.length; i++){
    stable = rere(stable, arguments[i]);
   }
//End problem.

  stable = stable.filter(function(a,b,c){
    return b == c.indexOf(a);
   });
  return stable;
}

sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1]); 
EN

回答 1

Stack Overflow用户

发布于 2017-09-15 00:01:58

您没有在rere()中声明i变量,这是在重用它,因此它在问题循环的每次迭代中都会被重置。

要修复它,请在rere()中使用letvar正确声明i

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46223657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档