我创建了一个 Javascript 函数,它接受可变数量的参数并将每个参数打印在新行上:

var printOut = function () {
    for (var i = 0; i < arguments.length; i++) {
        document.writeln(arguments[i] + '<br>');
    }
};

printOut('a', 'b', 'c');
printOut('d', 'e');

该函数打印出:
a
b
c
d
e

我想知道的是是否可以采用此函数并使其递归,但输出的顺序相同?
根据我的研究,递归会颠倒输出的顺序吗?

fiddle :https://jsfiddle.net/klems/kao9bh6v/

最佳答案

您可以将 arguments 切片并再次使用 apply 调用该函数。

var printOut = function () {
    if (arguments.length) {
        console.log(arguments[0]);
        printOut.apply(null, [].slice.call(arguments, 1));
    }
};

printOut('a', 'b', 'c');
printOut('d', 'e');

关于Javascript:修改一个打印出可变数量参数的函数以进行递归?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42675899/

10-12 07:04