如何在“ MadLibs”风格的文字游戏的javascript代码段中编写非单词字符?

时间:2019-04-14 19:35:27

标签: javascript blank-line

我在FreeCodeCamp上,我需要构建一个“疯子”风格的文字游戏(我们称其为“单词空白”。我必须创建一个“填充空白”风格的句子。

在“疯子”游戏中,将为您提供一些缺少单词的句子,例如名词,动词,形容词和副词。然后,以使完整句子有意义的方式,用您选择的单词填充缺失的部分。

考虑一下这句话-“确实是____,而我们____是我们____”。这句话缺少三个部分-形容词,动词和副词,我们可以添加自己选择的单词来完成它。然后,我们可以将完成的句子分配给变量,如下所示:

var句子=“真的” +“热” +“,然后我们” +“笑” +“我们自己” +“傻”。

根据上述说明,为我提供了一个名词,动词,形容词和副词。我需要使用选择的单词以及所提供的单词来构成一个完整的句子。

我将需要使用字符串连接运算符+通过提供的变量myNoun,myAdjective,myVerb和myAdverb来构建新的字符串。然后,我将形成的字符串分配给结果变量。

我还需要考虑字符串中的空格,以便最后一句话在所有单词之间都有空格。结果应该是完整的句子。

现在,我编写了以下代码来完成上面的练习:

function wordBlanks(myNoun, myAdjective, myVerb, myAdverb) {

  var myNoun = "___";
  var myAdjective = "___";
  var myVerb = "___";
  var myAdverb = "___";    

  var result = "my " + myAdjective + myNoun + "loves to " + myVerb + "very " 
  + myAdverb;

  return result;
}

wordBlanks("dog", "big", "ran", "quickly");
wordBlanks ();

但是运行测试时出现以下错误:

  

///运行测试wordBlanks(“ dog”,“ big”,“ ran”,“ quickly”)   包含所有以非单词字符分隔的传入单词   (以及madlib中的其他任何单词)。 wordBlanks(“ cat”,“ little”,   “ hit”,“ slowly”)应该包含所有传递的单词   非单词字符(以及madlib中的其他任何单词)。 //   测试完成

“所有通过非单词字符(以及madlib中的其他单词)分隔的所有传入单词”应该在这里吗?


编辑

我相应地修改了以下代码,并且现在可以使用。测试失败是因为变量中提供的单词必须用不同的单词替换,并且因为函数中的 var 结果缺少其他单词和空格--->

function wordBlanks(myNoun, myAdjective, myVerb, myAdverb) {
  // Your code below this line
  var result = "I have a " + myAdjective + " bed and the " + myNoun + " always " + myVerb + " very " + myAdverb;

  // Your code above this line
  return result;
}

// Change the words here to test your function
wordBlanks("cat", "little", "hit", "slowly");

因此,缺少的“非单词”字符是句子的空格和其他部分(我添加了以下内容以及提供的单词:“我有一个”,“床”和“,”,“始终”和“非常”)。

5 个答案:

答案 0 :(得分:1)

这可能是问题所在:myAdjective + myNoun请注意,它们之间没有空格。尝试更改为myAdjective + " " + myNoun,看看是否可行。

答案 1 :(得分:1)

听起来好像测试正在检查输出字符串以验证它包含每个传入的单词,并还验证它们是否被某些东西分隔开,例如空格,标点符号和其他词语。

失败,因为您正在使用"___"覆盖每个输入。因此输入的单词会丢失,并且不会变成输出的句子。

答案 2 :(得分:1)

我认为您忘记在形容词,名词和动词之后添加空格

答案 3 :(得分:1)

var myNoun = "dog";
var myAdjective = "big";
var myVerb = "ran";
var myAdverb = "quickly";


var wordBlanks = myNoun + " " + myVerb + " " + myAdjective + " "+ myAdverb + " " ;

试试这个,行得通!

答案 4 :(得分:0)

我猜你忘了在单词之间放置空格,并在句子末尾使用句号。

var myNoun = "dog";
var myAdjective = "big";
var myVerb = "ran";
var myAdverb = "quickly";

// Only change code below this line
var wordBlanks = "My " + myAdjective + " " + myNoun + " " + myVerb + " " + myAdverb + "."; // Change this line
// Only change code above this line