--- id: 587d7dab367417b2b2512b6d title: Apply Functional Programming to Convert Strings to URL Slugs challengeType: 1 forumTopicId: 301227 localeTitle: Применить функциональное программирование для преобразования строк в URL-адреса --- ## Description
Последние несколько проблем охватывали ряд полезных методов массивов и строк, которые следуют принципам функционального программирования. Мы также узнали о reduce , который является мощным методом, используемым для уменьшения проблем в более простых формах. От вычисления средних значений до сортировки любая операция массива может быть достигнута путем ее применения. Напомним, что map и filter являются особыми случаями reduce . Давайте объединим то, что мы узнали, чтобы решить практическую проблему. На многих сайтах управления контентом (CMS) заголовки сообщения добавлены в часть URL для простых целей закладок. Например, если вы пишете средний пост под названием «Stop Using Reduce», вероятно, URL-адрес будет иметь в нем какую-то форму заголовка («... / stop-using-reduce»). Возможно, вы уже это заметили на сайте freeCodeCamp.
## Instructions
Заполните функцию urlSlug чтобы она преобразует title строки и возвращает переносимую версию для URL-адреса. Вы можете использовать любой из методов, описанных в этом разделе, и не использовать replace . Вот требования: Вход представляет собой строку с пробелами и заглавными словами. Вывод представляет собой строку с пробелами между словами, замененными дефис ( - ). Вывод должен быть все буквы с нижним окошком. На выходе не должно быть пробелов
## Tests
```yml tests: - text: The globalTitle variable should not change. testString: assert(globalTitle === "Winter Is Coming"); - text: Your code should not use the replace method for this challenge. testString: assert(!code.match(/\.replace/g)); - text: urlSlug("Winter Is Coming") should return "winter-is-coming". testString: assert(urlSlug("Winter Is Coming") === "winter-is-coming"); - text: urlSlug(" Winter Is  Coming") should return "winter-is-coming". testString: assert(urlSlug(" Winter Is Coming") === "winter-is-coming"); - text: urlSlug("A Mind Needs Books Like A Sword Needs A Whetstone") should return "a-mind-needs-books-like-a-sword-needs-a-whetstone". testString: assert(urlSlug("A Mind Needs Books Like A Sword Needs A Whetstone") === "a-mind-needs-books-like-a-sword-needs-a-whetstone"); - text: urlSlug("Hold The Door") should return "hold-the-door". testString: assert(urlSlug("Hold The Door") === "hold-the-door"); ```
## Challenge Seed
```js // the global variable var globalTitle = "Winter Is Coming"; // Add your code below this line function urlSlug(title) { } // Add your code above this line var winterComing = urlSlug(globalTitle); // Should be "winter-is-coming" ```
## Solution
```js // the global variable var globalTitle = "Winter Is Coming"; // Add your code below this line function urlSlug(title) { return title.trim().split(/\s+/).join("-").toLowerCase(); } // Add your code above this line var winterComing = urlSlug(globalTitle); // Should be "winter-is-coming" ```