2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
id: 56533eb9ac21ba0edf2244bb
|
2020-12-16 00:37:30 -07:00
|
|
|
|
title: 填词造句
|
2018-10-10 18:03:03 -04:00
|
|
|
|
challengeType: 1
|
2020-04-29 18:29:13 +08:00
|
|
|
|
videoUrl: 'https://scrimba.com/c/caqn8zuP'
|
|
|
|
|
forumTopicId: 18377
|
2021-01-13 03:31:00 +01:00
|
|
|
|
dashedName: word-blanks
|
2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --description--
|
|
|
|
|
|
|
|
|
|
现在,我们来用字符串的相关知识实现一个 "[Mad Libs](https://en.wikipedia.org/wiki/Mad_Libs)" 类的文字游戏,称为 "Word Blanks"。 你将创建一个(可选幽默的)“填空”样式句子。
|
|
|
|
|
|
2020-04-29 18:29:13 +08:00
|
|
|
|
在 "Mad Libs" 游戏中,提供一个缺少一些单词的句子,缺少的单词包括名词,动词,形容词和副词等。然后,你选择一些单词填写句子缺失的地方,使句子完整并且有意义。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
|
|
|
|
思考一下这句话 - "It was really **\_\_\_\_**, and we **\_\_\_\_** ourselves **\_\_\_\_**"。这句话有三个缺失的部分 - 形容词,动词和副词,选择合适单词填入完成它。然后将完成的句子赋值给变量,如下所示:
|
2020-04-29 18:29:13 +08:00
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
var sentence = "It was really " + "hot" + ", and we " + "laughed" + " ourselves " + "silly" + ".";
|
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --instructions--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-04-29 18:29:13 +08:00
|
|
|
|
在这个挑战中,我们为你提供名词,动词,形容词和副词。你需要使用合适单词以及我们提供的单词来形成完整的句子。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
你需要使用字符串连接运算符`+`来拼接字符串变量:`myNoun`,`myAdjective`,`myVerb`,和`myAdverb`来构建一个新字符串。然后,将新字符串赋给`result`变量。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
你还需要考虑字符串中的空格,确保句子的所有单词之间有空格。结果应该是一个完整的句子。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --hints--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`wordBlanks("","","","")`应该返回一个字符串。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert(typeof wordBlanks === 'string');
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
不能改变 `myNoun`、`myVerb`、`myAdjective` 或者 `myAdverb` 的值。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert(
|
|
|
|
|
myNoun === 'dog' &&
|
|
|
|
|
myVerb === 'ran' &&
|
|
|
|
|
myAdjective === 'big' &&
|
|
|
|
|
myAdverb === 'quickly'
|
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
不能直接使用 "dog"、"ran"、"big" 或者 "quickly" 来创建 `wordBlanks`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
const newCode = removeAssignments(code);
|
|
|
|
|
assert(
|
|
|
|
|
!/dog/.test(newCode) &&
|
|
|
|
|
!/ran/.test(newCode) &&
|
|
|
|
|
!/big/.test(newCode) &&
|
|
|
|
|
!/quickly/.test(newCode)
|
|
|
|
|
);
|
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`wordBlanks` 应包含分配给变量 `myNoun`、`myVerb`、`myAdjective` 和 `myAdverb` 的所有单词,并用非单词字符(以及 madlib 中的其它单词)分隔。
|
2020-04-29 18:29:13 +08:00
|
|
|
|
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert(
|
|
|
|
|
/\bdog\b/.test(wordBlanks) &&
|
|
|
|
|
/\bbig\b/.test(wordBlanks) &&
|
|
|
|
|
/\bran\b/.test(wordBlanks) &&
|
|
|
|
|
/\bquickly\b/.test(wordBlanks)
|
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
2020-04-29 18:29:13 +08:00
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
|
|
## --after-user-code--
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
const removeAssignments = str => str
|
|
|
|
|
.replace(/myNoun\s*=\s*["']dog["']/g, '')
|
|
|
|
|
.replace(/myAdjective\s*=\s*["']big["']/g, '')
|
|
|
|
|
.replace(/myVerb\s*=\s*["']ran["']/g, '')
|
|
|
|
|
.replace(/myAdverb\s*=\s*["']quickly["']/g, '');
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
var myNoun = "dog";
|
|
|
|
|
var myAdjective = "big";
|
|
|
|
|
var myVerb = "ran";
|
|
|
|
|
var myAdverb = "quickly";
|
|
|
|
|
|
|
|
|
|
// Only change code below this line
|
|
|
|
|
var wordBlanks = ""; // Change this line
|
|
|
|
|
// Only change code above this line
|
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --solutions--
|
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
|
```js
|
|
|
|
|
var myNoun = "dog";
|
|
|
|
|
var myAdjective = "big";
|
|
|
|
|
var myVerb = "ran";
|
|
|
|
|
var myAdverb = "quickly";
|
|
|
|
|
|
|
|
|
|
var wordBlanks = "Once there was a " + myNoun + " which was very " + myAdjective + ". ";
|
|
|
|
|
wordBlanks += "It " + myVerb + " " + myAdverb + " around the yard.";
|
|
|
|
|
```
|