Показать сообщение отдельно
  #1 (permalink)  
Старый 26.05.2018, 17:45
Новичок на форуме
Отправить личное сообщение для K_Artem Посмотреть профиль Найти все сообщения от K_Artem
 
Регистрация: 17.02.2018
Сообщений: 4

Решение одной простой... задачи
/* 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]

Это как?
Ответить с цитированием