reduce
,这是一种用于将问题简化为更简单形式的强大方法。从计算平均值到排序,可以通过应用它来实现任何阵列操作。回想一下map
和filter
是reduce
特例。让我们结合我们学到的东西来解决实际问题。许多内容管理站点(CMS)将帖子的标题添加到URL的一部分以用于简单的书签目的。例如,如果您编写一个标题为“Stop Using Reduce”的Medium帖子,则URL可能会包含某种形式的标题字符串(“... / stop-using-reduce”)。您可能已经在freeCodeCamp网站上注意到了这一点。 urlSlug
函数,以便转换字符串title
并返回URL的连字符版本。您可以使用本节中介绍的任何方法,也不要使用replace
。以下是要求:输入是一个带空格和标题字的字符串输出是一个字符串,单词之间的空格用连字符替换( -
)输出应该是所有低位字母输出不应该有任何空格globalTitle
变量不应该更改。
testString: assert(globalTitle === "Winter Is Coming");
- text: 您的代码不应使用replace
方法来应对此挑战。
testString: assert(!code.match(/\.replace/g));
- text: urlSlug("Winter Is Coming")
应该回归"winter-is-coming"
。
testString: assert(urlSlug("Winter Is Coming") === "winter-is-coming");
- text: urlSlug(" Winter Is Coming")
应该回归"winter-is-coming"
。
testString: assert(urlSlug(" Winter Is Coming") === "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");
- text: urlSlug("Hold The Door")
应该返回"hold-the-door"
。
testString: assert(urlSlug("Hold The Door") === "hold-the-door");
```