Задание:In a variable called applyAndEmpty, build and store a function that takes in a single number and any Queue of functions as inputs and then applies the Queue’s functions in order to the input number, where the results of each function become the next function’s input. Additionally, the queue should be empty following your application. + нужно обязательно выполнить циклом, а не методом .map().
Код :var puzzlers = [
function ( a ) { return 8*a - 10; },
function ( a ) { return (a-3) * (a-3) * (a-3); },
function ( a ) { return a * a + 4; },
function ( a ) { return a % 5; }
];
var start = 2;
var applyAndEmpty = function( input, queue ) {
var length = queue.length;
for(var i = 0; i<length; i++){
input = queue.shift()(input);
}
return input;
};
alert(applyAndEmpty(start, puzzlers));
Что не понятно : Не понимаю момента, когда мы аргументу input присваиваем
queue.shift()(input); - какой смысл этого действия? Почему после queue.shift() в скобках стоит (input) и как это влияет на процесс?
Заранее благодарен