Javascript 外来名称生成器

Javascript 外来名称生成器,javascript,jquery,html,Javascript,Jquery,Html,我的javascript类中有一个作业,它提出了一个问题,我觉得我很快就能回答,但还没有达到目的 让我困惑的一件事是,为什么开发人员工具会告诉我变量“message”为null。我想不出来。作业中的所有内容在出现这个问题之前(都是类似的问题),我都能轻松解决。我可能想得太多了 问题: “创建一个应用程序,当单击按钮时,该应用程序将生成一组五个随机的“外来名称”。这些外来名称中必须至少包含一个元音,并且在名称中的某个位置应包含两个重复字符。示例名称包括:“llag”、“Uffrd”和“Dxxi”

我的javascript类中有一个作业,它提出了一个问题,我觉得我很快就能回答,但还没有达到目的

让我困惑的一件事是,为什么开发人员工具会告诉我变量“message”为null。我想不出来。作业中的所有内容在出现这个问题之前(都是类似的问题),我都能轻松解决。我可能想得太多了

问题: “创建一个应用程序,当单击按钮时,该应用程序将生成一组五个随机的“外来名称”。这些外来名称中必须至少包含一个元音,并且在名称中的某个位置应包含两个重复字符。示例名称包括:“llag”、“Uffrd”和“Dxxi”

这些名称应在DOM上显示给用户,并在随后的按钮单击中替换为新名称。”

我的代码(在粘贴之前,我一直在摆弄它,没有检查它,所以如果导航困难,请原谅我。请告诉我您将如何使用javascript解决此问题

//声明并标记消息(打印姓名的文本)
var message=document.querySelector(“消息”);
//声明数组并为其指定5个点作为名称
变量nameArray=[“”、“”、“”、“”、“”、“”];
//声明生成函数的名称
函数rando(){
//将指定的名称声明为空
变量名称=[];
//将名称的长度随机化
var namelength=Math.round(Math.random()*7)+4;
//宣布元音计数
var-vouelcount=0;
//for循环将每个名称存储到数组中
对于(变量i=0;i<5;i++){
//for循环来决定每个循环的字母
对于(变量i=0;i
随机名称

我将使用以下方法

  • 生成随机名称长度

  • 生成随机双字符位置

  • 生成与两个重复字母不相交的强制性元音位置 人物
  • 按照设置规则生成word,并相应地生成随机字符

    var message = document.querySelector("#message");
    
    function rando() {
    
       message.innerHTML = "";
    
        for (var j=0;j<5;j++)
        {
          var name = "";
          var namelength = Math.round(Math.random() * 7) + 4;
          var pairPosition = Math.round(Math.random() * (namelength-1));
          var obligatoryVowelPos = Math.round(Math.random() * (namelength-1));
    
    
    
          while(obligatoryVowelPos == pairPosition || obligatoryVowelPos == (pairPosition+1))
          obligatoryVowelPos = Math.round(Math.random() * (namelength-1));
    
    
           for (var i =0;i<namelength;i++) {
    
    
            if (i==pairPosition)
            {
                var character = generateRandomLetter();
                name = name + character + character;
                i++;
            }
            else if (i==obligatoryVowelPos)
            {
               name = name + generateVowel();
            }
            else
            {
               name = name+generateRandomLetter();
            }
    
            name = name.charAt(0).toUpperCase() + name.slice(1);
    
        //prints the names onto the DOM
    
        }
        message.innerHTML += name + "<br>";
        }
    
    }
    
    function generateVowel()
    {
          var aeiou = Math.round(Math.random()*4)+1;
    
          switch (aeiou)
          {
              case 1:return 'a';break;
              case 2:return 'e';break;
              case 3:return 'i';break;
              case 4:return 'o';break;
              case 5:return 'u';break;
          }
    }
    
    function generateRandomLetter()
    {
        var randomCharacterIndex = Math.round(Math.random() * 25);
        return String.fromCharCode(97 + randomCharacterIndex);
    }
    
    var message=document.querySelector(“消息”);
    函数rando(){
    message.innerHTML=“”;
    
    对于(var j=0;j我将使用以下方法

  • 生成随机名称长度

  • 生成随机双字符位置

  • 生成与两个重复字母不相交的强制性元音位置 人物
  • 按照设置规则生成word,并相应地生成随机字符

    var message = document.querySelector("#message");
    
    function rando() {
    
       message.innerHTML = "";
    
        for (var j=0;j<5;j++)
        {
          var name = "";
          var namelength = Math.round(Math.random() * 7) + 4;
          var pairPosition = Math.round(Math.random() * (namelength-1));
          var obligatoryVowelPos = Math.round(Math.random() * (namelength-1));
    
    
    
          while(obligatoryVowelPos == pairPosition || obligatoryVowelPos == (pairPosition+1))
          obligatoryVowelPos = Math.round(Math.random() * (namelength-1));
    
    
           for (var i =0;i<namelength;i++) {
    
    
            if (i==pairPosition)
            {
                var character = generateRandomLetter();
                name = name + character + character;
                i++;
            }
            else if (i==obligatoryVowelPos)
            {
               name = name + generateVowel();
            }
            else
            {
               name = name+generateRandomLetter();
            }
    
            name = name.charAt(0).toUpperCase() + name.slice(1);
    
        //prints the names onto the DOM
    
        }
        message.innerHTML += name + "<br>";
        }
    
    }
    
    function generateVowel()
    {
          var aeiou = Math.round(Math.random()*4)+1;
    
          switch (aeiou)
          {
              case 1:return 'a';break;
              case 2:return 'e';break;
              case 3:return 'i';break;
              case 4:return 'o';break;
              case 5:return 'u';break;
          }
    }
    
    function generateRandomLetter()
    {
        var randomCharacterIndex = Math.round(Math.random() * 25);
        return String.fromCharCode(97 + randomCharacterIndex);
    }
    
    var message=document.querySelector(“消息”);
    函数rando(){
    message.innerHTML=“”;
    
    对于(var j=0;jStack Overflow欢迎使用。请更新您的问题,使其包含代码的工作演示,以便我们可以看到问题。请参阅,它是空的,因为您必须在此处使用HTML。您的HTML在哪里?另外,在
    is元音
    函数中使用or运算符
    |
    ,并在一个
    if
    语句中完成。或者bette但是,使用
    some
    。嘿,我在我发布的答案中添加了我的HTML。对此我很抱歉。谢谢。我将缩短is元音函数,并使用| |而不是“or”。我不知道为什么我会在这个问题上遇到这么多麻烦。你在代码中遇到的一个问题是,你在循环
    中为(var I=0;I<5;I++){使用相同的索引(变量i=0;i
    您需要将其中一个
    ì
    变量更改为其他变量。`欢迎使用堆栈溢出。请更新您的问题,使其包含代码的工作演示,以便我们可以看到问题。请参阅,它为空,因为您必须在此处使用HTML。您的HTML在哪里?另外,在
    IsVotal中使用or运算符
    |
    功能