--- id: 56533eb9ac21ba0edf2244bb title: Word Blanks challengeType: 1 videoUrl: https://scrimba.com/c/cP3vVsm forumTopicId: 18377 localeTitle: Word Blanks --- ## Description
Теперь мы будем использовать наши знания объектов String для создания словесной игры « Mad Libs », которую мы называем «Word Blanks». Вы создадите (возможно, юмористическое) предложение стиля «Заполнить пропуски». В игре «Mad Libs» вам предоставляются предложения с некоторыми пропущенными словами, такими как существительные, глаголы, прилагательные и наречия. Затем вы заполняете недостающие части словами по вашему выбору так, чтобы законченное предложение имело смысл. Рассмотрите это предложение - «Он был действительно ____ , а мы ____ не ____ ». В этом предложении есть три недостающих фрагмента: прилагательное, наречие и глагол, и мы можем добавить слова по нашему выбору, чтобы завершить его. Затем мы можем назначить заполненное предложение переменной следующим образом:
var sentence = «Он был действительно« + »страшный« + », а мы« + »совершенно« + »не» + «боялись»;
## Instructions
В этой задаче мы предоставляем вам существительное, глагол, прилагательное и наречие. Вам нужно составить полное предложение, используя слова по вашему выбору, а также слова, которые мы предоставляем. Вам понадобится использовать оператор конкатенации строк + для создания новой строки с использованием предоставленных переменных: myNoun , myAdjective , myVerb и myAdverb . Затем вы присвойте сформированную строку переменной result . Вам также нужно будет учитывать пробелы в вашей строке, так что последнее предложение имеет пробелы между всеми словами. Результат должен быть полным предложением.
## Tests
```yml tests: - text: wordBlanks should be a string. testString: assert(typeof wordBlanks === 'string'); - text: You should not change the values assigned to myNoun, myVerb, myAdjective or myAdverb. testString: assert(myNoun === "dog" && myVerb === "ran" && myAdjective === "big" && myAdverb === "quickly"); - text: You should not directly use the values "dog", "ran", "big", or "quickly" to create wordBlanks. testString: const newCode = removeAssignments(code); assert(!/dog/.test(newCode) && !/ran/.test(newCode) && !/big/.test(newCode) && !/quickly/.test(newCode)); - text: wordBlanks should contain all of the words assigned to the variables myNoun, myVerb, myAdjective and myAdverb separated by non-word characters (and any additional words in your madlib). testString: assert(/\bdog\b/.test(wordBlanks) && /\bbig\b/.test(wordBlanks) && /\bran\b/.test(wordBlanks) && /\bquickly\b/.test(wordBlanks)); ```
## Challenge Seed
```js var myNoun = "dog"; var myAdjective = "big"; var myVerb = "ran"; var myAdverb = "quickly"; var wordBlanks = ""; // Only change this line; ```
### After Tests
```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, ''); ```
## Solution
```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."; ```