js 使用循环递归为什么无限循环了?

我根据对象中的code与数组中的做对比,然后成立的再执行一遍,可是只有两个能成立啊也就执行两回,怎么就无限循环了
functiona(){
for(leti=0;ilet{code}=obj
letnewCode=code.substring(0,code.length-1)
if(newCode===arr[i].code){
arr1.push(arr[i])
console.log(arr1)
a()
}
}
}
a()
萧十郎
浏览 314回答 2
2回答

一只甜甜圈

因为你没有已判断过的标记出来,导致每次执行a()方法时,都会拿到那个code,然后进入到if判断中。你可以把已匹配到的arr[i]中的code设置为另一个变量,下次匹配时就匹配不到了,例如:if(newCode===arr[i].code){arr[i].code='#';arr1.push(arr[i])console.log(arr1)a()}而且,你这个好像不用递归吧,直接一个循环就搞定了

慕后森

按你说的这种要求,并不需要递归functiona(){for(leti=0;i
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript