递归函数里面不能用for循环吗?
var S = 'googlgomglegoogle'
var C = 'google'
var sPositon = 0
function violence1() {
for (var i in C) {
if (C.charAt(i) !== S.charAt(sPositon)) {
sPositon += 1
violence1()
break
}
}
console.log(sPositon)
}
violence1()
当我调用这个方法的时候报错
for (var i in C) {
^
RangeError: Maximum call stack size exceeded
是因为递归的时候产生了多个for循环吗?多个for不能同时存在吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
可以使用,逻辑写得有问题,内存爆了。
每次递归调用中,
C
都不变,那肯定要爆内存的。好好看错误的英文啊。
你放在for循环里递归,会无限递归下去的,内存爆了。