Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在for循环中运行自定义随机函数_Javascript_Loops_For Loop_Random - Fatal编程技术网

Javascript 如何在for循环中运行自定义随机函数

Javascript 如何在for循环中运行自定义随机函数,javascript,loops,for-loop,random,Javascript,Loops,For Loop,Random,我试图打印10个随机名称,但循环没有生成它们-只显示一个名称。我不知道如何正确调用for循环中的随机化器函数。到目前为止,我已经尝试过: 姓 var firstnames=[“Hook”、“Rumpelstiltskin”、“Belle”、“Emma”、“Regina”、“Aurora”、“Elsa”、“Anna”、“白雪公主”、“白马王子”、“Cora”、“Zelena”、“August”、“Mulan”、“Graham”、“Discord”、“Will”、“Robin Hood”、“Ji

我试图打印10个随机名称,但循环没有生成它们-只显示一个名称。我不知道如何正确调用
for
循环中的
随机化器
函数。到目前为止,我已经尝试过:


姓
var firstnames=[“Hook”、“Rumpelstiltskin”、“Belle”、“Emma”、“Regina”、“Aurora”、“Elsa”、“Anna”、“白雪公主”、“白马王子”、“Cora”、“Zelena”、“August”、“Mulan”、“Graham”、“Discord”、“Will”、“Robin Hood”、“Jiminy Cricket”、“Henry”、“Neal”、“Red”];
var lastnames=[“亚当斯”、“鲍登”、“康威”、“达顿”、“爱德华兹”、“弗林”、“吉利安”、“假日”、“英格拉姆”、“约翰逊”、“克莱默”、“亨特”、“麦当劳”、“尼科尔斯”、“皮尔斯”、“索耶”、“桑德斯”、“施密特”、“施罗德”、“史密斯”、“道格拉斯”、“沃德”、“沃森”、“威廉姆斯”、“温特斯”];
var计数=10;
函数随机化器(){
nameone=firstnames[Math.floor(Math.random()*firstnames.length)];
nametwo=lastnames[Math.floor(Math.random()*lastnames.length)];
message=“”+nameone+“”+nametwo+“”;
document.getElementById(“fname”).innerHTML=消息;
}
对于(变量i=1;i
每当循环迭代时,此行将覆盖
tr
元素(
)中的所有内容:

document.getElementById("fname").innerHTML = message;
您正在生成多个名称;你只是把最后一个都消灭了


您需要做的是为每个名称添加一个新行。

我创建了一个解决方案,当单击按钮时,它将清除上一次运行。此外,我将循环放置在函数中,这样它就不会在页面加载时执行,而是在单击时执行

var firstnames=[“胡克”、“伦佩尔斯蒂尔斯金”、“贝尔”、“艾玛”、“雷吉娜”、“极光”、“艾尔莎”、“安娜”、“白雪公主”、“白马王子”、“科拉”、“泽莱娜”、“八月”、“木兰”、“格雷厄姆”、“迪斯科”、“威尔”、“罗宾汉”、“吉米尼板球”、“亨利”、“尼尔”、“红色”];
var lastnames=[“亚当斯”、“鲍登”、“康威”、“达顿”、“爱德华兹”、“弗林”、“吉利安”、“假日”、“英格拉姆”、“约翰逊”、“克莱默”、“亨特”、“麦当劳”、“尼科尔斯”、“皮尔斯”、“索耶”、“桑德斯”、“施密特”、“施罗德”、“史密斯”、“道格拉斯”、“沃德”、“沃森”、“威廉姆斯”、“温特斯”];
var计数=10;
函数createRowFromHTML(htmlString){
var table=document.createElement('tbody');
table.innerHTML=htmlString.trim();
返回表.firstChild;
}
函数随机化器(){
//清除旧名称
document.getElementsByTagName(“tbody”)[0].innerHTML=“”;
对于(变量i=1;i

名字
姓

哦,是的,你说得对。您有没有建议修改代码以始终添加新行而不是覆盖?