Есть такая задача - реализовать функцию compose, которая принимает аргументами любое количество функций, и возвращает функцию, которая при вызове вызовет все функции, которые compose получила аргументом.
Я сделал следующее:
function compose() {
var arr = [];
for(var i = 0; i < arguments.length; i++) {
arr.push(arguments[i]);
}
return function() {
var calledFunction = [];
for(var j = 0; i < arr.length; i++) {
calledFunction.push(arr[i]());
return calledFunction;
}
}
}
поясняю: поскольку наша функция может принимать любое количество аргументов, то целесообразно использовать объект arguments, но поскольку он не массив по своей сути, а array-like, то я с создаю пустой массив и далее с помощью цикла for прохожусь по элементам arguments и записываю их в новый массив из всех переданных нам аргументов.
Далее я возвращаю функцию (как по условию) в которой проделываю тот же трюк, но теперь в новый массив я записываю вызванные функции . В итоге код не отрабатывает... в чем проблема? помогите разобраться...