Задача взята с
http://dkab.github.io/jasmine-tests/?spec=6
Суть: Написать функцию partialAny которая позволяет фиксировать зафиксировать любые аргументы, пропущенные аргументы обозначаются с помощью undefined:
Написала cследующее, но не прошла тестировку, выдаёт следующее
"может вызываться несколько раз и результаты во второй раз не зависят от первого" направьте меня как переписать правильно..:
function partialAny() {
var func = arguments[0];
var masArg = [];
var masArg2 = [];
var count = 0;
for(let k=1; k<arguments.length; k++) {
masArg[k-1] = arguments[k];
}
return function() {
for(let k=0; k<arguments.length; k++) {
masArg2[k] = arguments[k];
}
for(let z=0; z<masArg.length; z++) {
if(masArg[z] === undefined) {
masArg[z] = masArg2[count];
count++;
}
}
for(let z=count; z<masArg2.length; z++) {
masArg[masArg.length] = masArg2[z];
}
return func.apply(this, masArg);
}
}
function test(a, b, c) { return "a=" + a + ", b=" + b + ", c=" + c}
var test1_3 = partialAny(test, 1, undefined, 3, undefined);
console.log(test1_3(5, 9, 22, "asdasd")); // a=1,b=5,c=3
console.log(test1_3(1, 2, 4, "7")); // должна вывести a=1,b=2,c=3 а выводит a=1,b=5,c=3 (т.е предыдущее значение)