Javascript 外来名称生成器
我的javascript类中有一个作业,它提出了一个问题,我觉得我很快就能回答,但还没有达到目的 让我困惑的一件事是,为什么开发人员工具会告诉我变量“message”为null。我想不出来。作业中的所有内容在出现这个问题之前(都是类似的问题),我都能轻松解决。我可能想得太多了 问题: “创建一个应用程序,当单击按钮时,该应用程序将生成一组五个随机的“外来名称”。这些外来名称中必须至少包含一个元音,并且在名称中的某个位置应包含两个重复字符。示例名称包括:“llag”、“Uffrd”和“Dxxi” 这些名称应在DOM上显示给用户,并在随后的按钮单击中替换为新名称。” 我的代码(在粘贴之前,我一直在摆弄它,没有检查它,所以如果导航困难,请原谅我。请告诉我您将如何使用javascript解决此问题Javascript 外来名称生成器,javascript,jquery,html,Javascript,Jquery,Html,我的javascript类中有一个作业,它提出了一个问题,我觉得我很快就能回答,但还没有达到目的 让我困惑的一件事是,为什么开发人员工具会告诉我变量“message”为null。我想不出来。作业中的所有内容在出现这个问题之前(都是类似的问题),我都能轻松解决。我可能想得太多了 问题: “创建一个应用程序,当单击按钮时,该应用程序将生成一组五个随机的“外来名称”。这些外来名称中必须至少包含一个元音,并且在名称中的某个位置应包含两个重复字符。示例名称包括:“llag”、“Uffrd”和“Dxxi”
//声明并标记消息(打印姓名的文本)
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
随机名称
我将使用以下方法
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运算符|
代码>功能