轨道
/
JavaScript
JavaScript
/
练习
/
诗歌俱乐部门禁规则
诗歌俱乐部门禁规则

诗歌俱乐部门禁规则

学习练习

简介

_字符串_是 JavaScript 中用来存储文本数据的数据类型。

创建字符串

把文本用单引号或双引号包起来,就创建了一个字符串。 在 Exercism 上,使用单引号。

'Hello, World!'
"Hello, World!"

字符串作为字符数组

可以把字符串看作一个字符数组,其中第一个字符的下标是 0。 使用方括号和你想获取的字符的下标,就能访问字符串中的单个字符。

'cat'[1];
// => 'a'

通过访问 length 属性,可以确定字符串中字符的数量。

'cat'.length;
// => 3

拼接和方法

拼接字符串最简单的方式是使用加法运算符 +。

'I like' + ' ' + 'cats.';
// => "I like cats."

字符串提供了很多辅助方法,完整列表见 MDN 上关于字符串方法的文档。 下面列出了一些常用的辅助方法。

在 JavaScript 中,字符串是不可变的。因此,所谓的“修改”(比如使用上面某些方法)总是会创建一个新字符串。

说明

镇上新开了一家诗歌俱乐部,你正想着去参加。 因为过去发生过一些意外,俱乐部有一套非常严格的门禁规矩,你得先掌握它们,才能尝试进入。

诗歌俱乐部有两扇门,一扇前门,一扇后门,两扇门都有人把守。 想要进去,你得先弄清楚当天的密码。

密码总是以一首诗为基础,可以通过两个步骤推导出来。

  1. 守卫会逐行朗诵这首诗,你要针对每一行回答一个合适的字母。
  2. 守卫接着会把你回答过的所有字母一次性告诉你,你需要按特定格式把它们写在一张纸上。

具体流程取决于你想进哪扇门。

1. 获取句子的第一个字母

要确定前门密码的字母,你需要针对守卫朗诵的每一行诗,回答那一行的第一个字母。

为了让密码好看些,诗歌俱乐部的成员喜欢用_藏头诗_。 也就是说,每句话的第一个字母能拼成一个单词。 下面是他们最喜欢的作家之一 Michael Lockwood 写的一个例子。

Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave

所以当守卫朗诵 Stands so high 时,你要回答 S;当守卫朗诵 Huge hooves too 时,你要回答 H。

实现函数 frontDoorResponse,它接收一行诗作为实参,返回那一行的第一个字母。

frontDoorResponse('Stands so high');
// => "S"

2. 将单词首字母大写

现在你已经拿到了所有正确的字母,要得到前门密码,只需要把单词的首字母正确地大写就行了。

实现函数 frontDoorPassword,它接收一个字符串(你在任务 1 中找到的组合字母),返回首字母大写后的结果。

frontDoorPassword('SHIRE');
// => "Shire"

frontDoorPassword('shire');
// => "Shire"

3. 获取句子的最后一个字母

要确定后门密码的字母,你需要针对守卫朗诵的每一行诗,回答那一行的最后一个字母。

诗歌俱乐部的成员真的很聪明。 前面提到的那首诗同时也是_藏尾诗_,也就是说,每句话的最后一个字母也能拼成一个单词:

Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave

当守卫朗诵 Stands so high 时,你要回答 h;当守卫朗诵 Huge hooves too 时,你要回答 o。

注意,守卫有时会在行首或行尾做风格化的停顿(表现为空白字符)。 你需要忽略这些停顿,才能得出正确的字母。

实现函数 backDoorResponse,它接收一行诗作为实参,返回那一行中最后一个不是空白字符的字母。

backDoorResponse('Stands so high');
// => "h"

backDoorResponse('Stands so high   ');
// => "h"

4. 讲礼貌

要从后门进入诗歌俱乐部,你需要格外有礼貌。 所以要得出密码,这次你需要把单词的首字母正确地大写,并在末尾加上 ', please'。

实现函数 backDoorPassword,它接收一个字符串(你在任务 3 中找到的组合字母),返回首字母大写后的密码的礼貌版本。

backDoorPassword('horse');
// => "Horse, please"
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
JavaScript Exercism

准备好开始 诗歌俱乐部门禁规则 了吗?

注册 Exercism,借助 37 个概念159 个练习 和真人导师指导,学习并掌握 JavaScript,全部免费。