对于学校,我正在做一项作业,我们需要为男性和女性名字制作一个随机名称生成器,我们必须在它前面加上数字,但我不知道该怎么做。发电机本身正在工作,但我无法弄清楚它的数字部分。数字需要从 1 到最大 100。
var number = ["1", "2", "3", "4", "5"];
var randomnumber = Math.floor(Math.random() * number.length);
var counter = number[randomnumber];
document.write("Female Names");
document.write("<br>");
function femaleName (){
// My variables.
// Klinkers.
var klinker = ["o", "a", "i", "e", "u"];
var randomnumberk = Math.floor(Math.random() * klinker.length);
var randomklinker = klinker[randomnumberk];
var randomnumberk1 = Math.floor(Math.random() * klinker.length);
var randomklinker1 = klinker[randomnumberk1];
var randomnumberk2 = Math.floor(Math.random() * klinker.length);
var randomklinker2 = klinker[randomnumberk2];
var randomnumberk3 = Math.floor(Math.random() * klinker.length);
var randomklinker3 = klinker[randomnumberk3];
var randomnumberk4 = Math.floor(Math.random() * klinker.length);
var randomklinker4 = klinker[randomnumberk4];
// Medeklinkers.
var medeklinker = ["b", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t", "v", "w", "z",]
var randomnumbermk = Math.floor(Math.random() * medeklinker.length);
var randommedeklinker = medeklinker[randomnumbermk];
var randomnumbermk1 = Math.floor(Math.random() * medeklinker.length);
var randommedeklinker1 = medeklinker[randomnumbermk1];
var randomnumbermk2 = Math.floor(Math.random() * medeklinker.length);
var randommedeklinker2 = medeklinker[randomnumbermk2];
var randomnumbermk3 = Math.floor(Math.random() * medeklinker.length);
var randommedeklinker3 = medeklinker[randomnumbermk3];
var randomnumbermk4 = Math.floor(Math.random() * medeklinker.length);
var randommedeklinker4 = medeklinker[randomnumbermk4];
document.write(number, randomklinker, randommedeklinker, randomklinker1, randommedeklinker1, randomklinker2);
document.write("<br>");
}
for ( var i = 0; i < 6; i++) {
femaleName();
}
document.write("<br>");
document.write("<br>");
document.write("<br>");
document.write("Male names");
document.write("<br>");
function maleName (){
// My variables.
// Klinkers.
var klinker = ["o", "a", "i", "e", "u"];
var randomnumberk = Math.floor(Math.random() * klinker.length);
var randomklinker = klinker[randomnumberk];
var randomnumberk1 = Math.floor(Math.random() * klinker.length);
var randomklinker1 = klinker[randomnumberk1];
var randomklinker2 = klinker[randomnumberk2];
var randomnumberk3 = Math.floor(Math.random() * klinker.length);
var randomklinker3 = klinker[randomnumberk3];
var randomnumberk4 = Math.floor(Math.random() * klinker.length);
var randomklinker4 = klinker[randomnumberk4];
// Medeklinkers.
var medeklinker = ["b", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t", "v", "w", "z",]
var randomnumbermk = Math.floor(Math.random() * medeklinker.length);
var randommedeklinker = medeklinker[randomnumbermk];
var randomnumbermk1 = Math.floor(Math.random() * medeklinker.length);
var randommedeklinker1 = medeklinker[randomnumbermk1];
var randomnumbermk2 = Math.floor(Math.random() * medeklinker.length);
var randommedeklinker2 = medeklinker[randomnumbermk2];
var randomnumbermk3 = Math.floor(Math.random() * medeklinker.length);
var randommedeklinker3 = medeklinker[randomnumbermk3];
var randomnumbermk4 = Math.floor(Math.random() * medeklinker.length);
var randommedeklinker4 = medeklinker[randomnumbermk4];
document.write(randommedeklinker, randomklinker, randommedeklinker1, randomklinker1, randommedeklinker2);
document.write("<br>");
}
for ( var i = 0; i < 6; i++) {
maleName();
}
我希望有人可以帮助我解决这个问题。
最佳答案
这类问题总是让我怀疑什么是最好的答案。显然,RRZ提供的解决方案有效,应标记为答案。 但是,我相信,如果您确保您的代码以清晰简洁的方式编写,您自己就会发现它!
我不想为您做作业,但我确实想向您展示编写此程序的另一种方法。
- 尝试将您的问题分割为小问题:
- 获取数字 1 到 5
- 获取随机元音
- 获取随机辅音
- 将元音和辅音按顺序链接在一起
- 将名称呈现到文档
- 尝试思考哪些问题经常出现,并赋予它们自己的功能
- 首先定义程序的“设置”
- 您想要生成多少个名称
- 女性名字的格式是什么
- 男性名字的格式是什么
为了使这一点更加具体,我以回答这些要点的方式实现了您的代码:
// Settings
var NR_OF_NAMES = 6,
// K = Klinker, M = Medeklinker
FEMALE_NAME_PATTERN = "KMKMK",
MALE_NAME_PATTERN = "MKMKM";
function getRandomIntBelow(max) {
return Math.floor(Math.random() * max);
};
function getRandomFromArray(array) {
return array[getRandomIntBelow(array.length)];
}
function getRandomKlinker() {
return getRandomFromArray(["o", "a", "i", "e", "u"]);
}
function getRandomMedeklinker() {
return getRandomFromArray(["b", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t", "v", "w", "z"]);
}
function getNameByPattern(pattern) {
return pattern
.split("") // Array of characters
.map(function(code) {
// Replace M by medeklinker
if (code === "M") return getRandomMedeklinker();
// Replace K by klinker
if (code === "K") return getRandomKlinker();
})
.join(""); // Back to string
}
// Document creation:
// Render a list of names
function writeNameBlock(pattern, count) {
for (var i = 0; i < count; i++) {
document.write("<br>");
document.write(i + 1 + ". ");
document.write(getNameByPattern(pattern));
}
}
// Render the outlinse and include two lists
document.write("Female Names");
writeNameBlock(FEMALE_NAME_PATTERN, NR_OF_NAMES);
document.write("<br>");
document.write("<br>");
document.write("Male names");
writeNameBlock(MALE_NAME_PATTERN, NR_OF_NAMES);
关于javascript - 不知道如何让这个名称生成器工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39910402/