Практика Java Script - bundleArgsFunction - PullRequest
       27

Практика Java Script - bundleArgsFunction

0 голосов
/ 25 сентября 2018

Я относительно новичок в кодировании, и я делаю некоторые практические проблемы для javascript ради практики.Есть одна проблема, с которой я застрял в реализации функции связывания.По сути, мне нужно реализовать функцию под названием bundleArgs с двумя параметрами: функцией fn для связывания аргументов и args1, от args2 до argsn - любых чисел, которые будут автоматически заполняться при использовании функции вывода.В сущности, bundleArgs должен возвращать версию исходного fn, которая может принимать любое количество аргументов, но при использовании будет использовать args1, args2 to argsn в качестве первых параметров для fn, заполняя новые аргументы впоследствии.Я попытался сделать это с помощью функции bind, так как она в основном делает ваши аргументы предварительно заполненными, однако я должен реализовать это БЕЗ использования bind, и это, по сути, то, где я застрял.Пример вывода: // пример, у вас есть функция, которая окружает текст другим текстом

function surroundText(surrounding, text) {
  return [surrounding, text, surrounding].join(" ")
}

// but you know you're going to use it for one thing only
const makeCool = bundleArgs(surroundText, "~x~X~x~")

// save yourself some time
console.log(makeCool("i guess")) // ~x~X~x~ i guess ~x~X~x~

// again w/ leftovers
function repeatLetter(letter, times) {
    Array(times).fill(letter).join('');
}

// fix 1 of 2 arguments to 'r'
rrrrrollWithIt = bundleArgs(repeatLetter, 'r');

// resulting function has only one arg now
rrrrrollWithIt(10) // rrrrrrrrrr
...