2017-03-08 33 views
3

我创建了一个JavaScript函数,它采用可变数量的参数,并打印出每一个新行: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/

+0

你能给你想如何使用递归函数的例子吗?你还会打印printOut('a','b','c')然后printOut('d','e')吗? – shanzilla

+0

我想打印printOut('a','b')首先 – leonOsmania

+0

坦率地说 - 这有什么意义? – shanzilla

回答

3

你可以切片argumentsapply再次调用该函数。

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

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

相关问题