--- id: 587d7dab367417b2b2512b6d title: Apply Functional Programming to Convert Strings to URL Slugs challengeType: 1 videoUrl: '' localeTitle: 应用函数式编程将字符串转换为URL Slugs --- ## Description
最后几个挑战涵盖了许多遵循函数式编程原理的有用数组和字符串方法。我们还学习了reduce ,这是一种用于将问题简化为更简单形式的强大方法。从计算平均值到排序,可以通过应用它来实现任何阵列操作。回想一下mapfilterreduce特例。让我们结合我们学到的东西来解决实际问题。许多内容管理站点(CMS)将帖子的标题添加到URL的一部分以用于简单的书签目的。例如,如果您编写一个标题为“Stop Using Reduce”的Medium帖子,则URL可能会包含某种形式的标题字符串(“... / stop-using-reduce”)。您可能已经在freeCodeCamp网站上注意到了这一点。
## Instructions
填写urlSlug函数,以便转换字符串title并返回URL的连字符版本。您可以使用本节中介绍的任何方法,也不要使用replace 。以下是要求:输入是一个带空格和标题字的字符串输出是一个字符串,单词之间的空格用连字符替换( - )输出应该是所有低位字母输出不应该有任何空格
## Tests
```yml tests: - text: globalTitle变量不应该更改。 testString: 'assert(globalTitle === "Winter Is Coming", "The globalTitle variable should not change.");' - text: 您的代码不应使用replace方法来应对此挑战。 testString: 'assert(!code.match(/\.replace/g), "Your code should not use the replace method for this challenge.");' - text: urlSlug("Winter Is Coming")应该回归"winter-is-coming" 。 testString: 'assert(urlSlug("Winter Is Coming") === "winter-is-coming", "urlSlug("Winter Is Coming") should return "winter-is-coming".");' - text: urlSlug(" Winter Is Coming")应该回归"winter-is-coming" 。 testString: 'assert(urlSlug(" Winter Is Coming") === "winter-is-coming", "urlSlug(" Winter Is  Coming") should return "winter-is-coming".");' - text: urlSlug("A Mind Needs Books Like A Sword Needs A Whetstone")应该回归"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", "urlSlug("A Mind Needs Books Like A Sword Needs A Whetstone") should return "a-mind-needs-books-like-a-sword-needs-a-whetstone".");' - text: urlSlug("Hold The Door")应该返回"hold-the-door" 。 testString: 'assert(urlSlug("Hold The Door") === "hold-the-door", "urlSlug("Hold The Door") should return "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 // solution required ```