gpt4 book ai didi

javascript - 带参数的递归方法

转载 作者:行者123 更新时间:2023-12-03 03:47:26 24 4
gpt4 key购买 nike

由于函数调用上的条目,脚本必须先打印“Hello”,然后打印“Good bye”。但只打印一次。为什么?下面出了什么问题。

PD:现在它不起作用了。如果我评论递归调用行,它就会起作用

<html>
<head>
</head>
<body>
<script type="text/javascript">
function writing(i,first,second) {
len=arguments.length;
if (i<=len) {
current=arguments[i];
c=0;
inter=setInterval(function() {
if (c>=current.length) {
clearInterval(inter);
} else {
field=document.getElementById('div1');
field.innerHTML+=current[c];
c+=1;
}
},200);
}
i<len?writing(i+1,first,second):writing(i=0,first,second);
}
writing(1,'Hello','Good bye');
</script>
<div id="div1"></div>
</body>

最佳答案

代码有很多问题,首先是无限循环(永无止境),第二是变量声明,还有其他......

这里我附上了代码片段,请运行并检查是否是您正在寻找的。

我必须添加 setTimeout 才能满足您的要求。

var interval_counter = 0;

function writing(i, first, second) {
var len = arguments.length;
if (i != 0 && i <= len) {
var current = arguments[i];
var c = 0;
setTimeout(function() {
var inter = setInterval(function() {
if (c >= current.length) {
clearInterval(inter);
} else {

field = document.getElementById('div1');
field.innerHTML += current[c];
c += 1;
}
}, 200);
}, 200 * interval_counter);
interval_counter = interval_counter + current.length;
i < (len - 1) ? writing(i + 1, first, second) : writing(i = 0, first, second);
} else {
return false;
}

}
writing(1, 'Hello', 'Good bye');
<div id="div1"></div>

关于javascript - 带参数的递归方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45317399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com