javascript - 带参数的递归方法

标签 javascript recursion parameters arguments

由于函数调用上的条目,脚本必须先打印“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/

相关文章:

javascript - 准备和使用带有区域和年份子集的 moment-timezone.js 的步骤是什么

javascript - 递归最长公共(public)子序列循环还是永远持续?

php - 如何使用递归函数返回 true

javascript - 如何从具有append的li元素获取对象参数

javascript - 如何将外部数据获取 api 导入 react componentDidMount 方法

Javascript 自动从 HTML 中选取关键字

javascript - Angular - 如何从 DOM 中删除我使用过 $compile 的元素?

java - 递归和不同的列表

c# - 有一种方法可以在 C# 中使用可变参数按引用传递吗?

javascript - 将表单数据 POST 中的数组发送到 PHP 端点