Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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]

Это как?
Ответить с цитированием
  #2 (permalink)  
Старый 26.05.2018, 18:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,127

Сообщение от K_Artem
Это как?
строка 35 нужно дописать (что именно: смотреть как образец строку 15)
Ответить с цитированием
  #3 (permalink)  
Старый 24.10.2024, 03:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,127

K_Artem,
function test() { return arguments }
var test1_3 = partialAny(test, 1, undefined, 3);
console.log(test1_3(5)); // 1,5,3
console.log( partialAny(test, 1)(2, 3))//  [1, 2, 3]
// Моя функция
function partialAny(...arg) {
	let [fn, ...arrFixArgs] = arg;
	return function (...arg) {
	  let	j = 0;
      let  arrArgs = arrFixArgs.map((e, i) => e === undefined ? arg[j++] : e)
      arrArgs =  arrArgs.concat(arg.slice(j));
		return fn.apply(this, arrArgs);
	}
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение задачи на оптимум средствами JavaScript. Behappy1113 Работа 0 03.03.2015 10:01
решение задачи / JavaScript Jhon Общие вопросы Javascript 1 30.05.2014 17:15
Решение задачи, с использованием цикла for. Eldon Общие вопросы Javascript 4 19.11.2012 10:41
Решение задачи с объектом math biz87 Общие вопросы Javascript 4 26.08.2011 13:50
Решение задачи (теста) или как вычислить правильный ответ? Remarkus Общие вопросы Javascript 0 25.04.2011 10:50