循环返回语句中的javascript递归不起作用

时间:2015-05-27 10:35:45

标签: javascript

我有一个循环,其中我有一个不返回和停止的递归函数。这是代码

html,body {
  height:100vh;  
  max-width: 1500px;
  margin: 0 auto;
  padding-top: 00px;  
}
/*
#wrapper {
  height: 100%;
  overflow: auto;
}
*/   
.container .row .col-md-6 { 
  height: 100vh;
  overflow: auto;  
} 

Link

1 个答案:

答案 0 :(得分:3)

当你在这里递归调用deepEqual时:

if (objectTester(valOne[key]) && objectTester(valTwo[key])) {
    deepEqual(valOne[key], valTwo[key]);
}

你忽略了递归调用的返回值,所以无论内部对象是否相等,它都会遍历所有内容。

尝试

if(!deepEqual(valOne[key], valTwo[key])){ return false }

另一种选择是抛出异常(并在顶部捕获它)而不是返回布尔值。无论您有多少递归级别,这都会使您的控制流直接跳出。