reduce
方法,从计算平均值到排序,任何数组操作都可以用它来实现。回想一下,map
和filter
方法都是reduce
的特殊实现。
让我们把学到的知识结合起来解决一个实际问题。
许多内容管理站点(CMS)为了让添加书签更简单,会将帖子的标题添加到 URL 上。举个例子,如果你写了一篇标题为 "Stop Using Reduce" 的帖子,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");
```