/* 6
* Написать функцию, которая может зафиксировать любые аргументы,
* пропущенные аргументы обозначаются с помощью undefined:
*/
function test() { return arguments }
var test1_3 = partialAny(test, 1, undefined, 3);
console.log(test1_3(5)); // a=1,b=5,c=3
// Моя функция
function partialAny(fn) {
var arrFixArgs = [];
for (var i = 1; i < arguments.length; i++) {
arrFixArgs.push(arguments[i]);
}
return function () {
var arrArgs = arrFixArgs.slice(),
j = 0;
for (var i = 0; i < arrArgs.length; i++) {
if (arrArgs[i] === undefined) {
arrArgs[i] = arguments[j++]
}
}
return fn.apply(this, arrArgs);
}
}
Функция вроде работает, но мне сказали, что функция должна подставлять лишние аргументы в конец списка: partialAny(fn, 1)(2, 3) -> [1, 2, 3]
Это как?