Ich habe eine Aufgabe in meiner Javascript-Klasse, die eine Frage aufwirft Ich fühle mich wie ich in der Nähe zu beantworten bin, aber gerade nicht ganz dahin.Alien Name Generator
Eine Sache, die mich verwirrt ist, warum Entwickler-Tools mir sagen, die Variable "Nachricht" ist null. Ich kann es nicht herausfinden. Alles auf der Aufgabe vor diesem Problem (die ähnliche Probleme waren), konnte ich in Windeseile kommen. Ich bin vielleicht darüber hinweg.
Problem: „Erstellen Sie eine Anwendung, die einen Satz von fünf zufällig generieren‚in in ihnen fremden Namen‘, wenn eine Schaltfläche geklickt wird diese fremden Namen müssen mindestens einen Vokal haben und sollte zwei wiederholt haben Zeichen irgendwo. Der Name lautet Beispiel: 'llag', 'Uffrd' und 'Dxxi'.
Diese Namen sollten dem Benutzer im DOM angezeigt und bei nachfolgenden Klickern durch neue ersetzt werden. "
My-Code (wurden damit um ziemlich viel Hantieren und sie nicht vor dem Einfügen hat zu überprüfen, so verzeiht mir, wenn es schwer zu navigieren ist. Lassen Sie mich wissen, wie Sie über die Lösung dieses mit Javascript gehen würde.
//declares and assaigns the message (text where names will be printed)
var message = document.querySelector("#message");
//declares the array and gives it 5 spots for names
var nameArray = ["", "", "", "", ""];
// declares the name generating function
function rando() {
//declares assigns name as empty for now
var name = [];
//randomizes length of the name
var namelength = Math.round(Math.random() * 7) + 4;
//declaring a vowel count
var vowelCount = 0;
//for loop to store each name into the array
for (var i = 0; i < 5; i++) {
//for loop to decide the letters for each
for (var i = 0; i < namelength; i++) {
//declares boolean variable that stores whether or not the current character is a vowel using the created is Vowel() function
var wasVowel = isVowel(name[i]);
//if the last character was a vowel
if (wasVowel) {
//counts vowels
vowelCount++;
//while loop
while (isVowel(name[i])) {
//declares the variable and assigns it to a random number between 0 and 25
var randomCharacterIndex = Math.round(Math.random() * 25);
//updates the current character based on the random variable equal to or above the unicode 97 ("a")
name[i] = String.fromCharCode(97 + randomCharacterIndex);
}
//if the previous character was not a vowel
} else {
//while loop
while (isVowel(name[i]) == false) {
//declares variable and assigns it to random number between 0 and 25
var randomCharacterIndex = Math.round(Math.random() * 25);
//updates the current character based on the random variable equal to or above the unicode 97 ("a")
name[i] = String.fromCharCode(97 + randomCharacterIndex);
}
}
//adds each letter to the name
name += name[i];
}
//making the first letterz
name[0].toUpperCase();
//adds each name to the array
nameArray[i] = name.join("");
//name is reset to null for the next name loop
name = [];
}
//prints the names onto the DOM
message.innerHTML = nameArray.join(", ");
}
function isVowel(character) {
if (character == "a" || character == "e" || character == "i" || character == "o" || character == "u") {
return true;
} else {
//this is the 'default'
return false;
}
}
<button onclick="rando()">Random Names</button>
<div id="message"></div>
Willkommen bei Stack Overflow. Bitte aktualisieren Sie Ihre Frage, um eine funktionierende Demo Ihres Codes zu erhalten, damit wir das Problem sehen können. Siehe [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (https://stackoverflow.com/help/mcve) und [Erstellen eines ausführbaren Code-Snippets] (https://stackoverflow.blog/2014/09/16/introducing-runnable-javascript-css-und-html-code-snippets /) – FluffyKitten
Es ist null, weil Sie HTML hier haben. Wo ist dein HTML? Benutze auch den oder Operator '||' in deiner 'isVowel' Funktion und mache das in einer' if' Anweisung. Oder besser noch, verwenden Sie "einige". – jmargolisvt
hey, ich habe meinen HTML-Code zu einer Antwort hinzugefügt, die ich gepostet habe. Das tut mir leid. Vielen Dank. Ich werde die isVowel Funktion verkürzen und || benutzen statt "oder". Ich weiß nicht, warum ich so viel Mühe auf diese – jtsports1217