Javascript:修改一个函数,打印出可递归的变量数量的参数?

时间:2017-03-08 15:51:53

标签: javascript recursion

我创建了一个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

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

小提琴:https://jsfiddle.net/klems/kao9bh6v/

1 个答案:

答案 0 :(得分:3)

您可以对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');