javascript - 如何生成3个名字不重复的名字

标签 javascript arrays math random

<分区>

window.onload = start;

function start () {
  var name = ["Hans","Ole","Nils","Olav","Per","Knut","Kari","Line","Pia"]
  var random = Math.floor(Math.random()*8)
  var random2 = Math.floor(Math.random()*8)
  var random3 = Math.floor(Math.random()*8)
  var name2 = []
  name2.push(name[random])
  name2.push(name[random2])
  name2.push(name[random3])

  for(i=0; i<3; i++) {
  document.getElementById("par").innerHTML += name2[i] + "<br/>" ;
  }
}

到目前为止,使用这段代码,我可以从名称数组中生成 3 个随机名称。但我希望这 3 个名字不要重复,我不知道如何实现。

最佳答案

也许这会有所帮助。我将数组的顺序随机化,然后只选择前三个元素。这允许名称零重复并在每次运行该函数时生成一个新答案。不确定您的 HTML 是什么样子,所以我只是添加了 id“demo”。

var players = ["Hans","Ole","Nils","Olav","Per","Knut","Kari","Line","Pia"];

<pre><code>function tournament() { var names = []; players.sort(function(a,b){return 0.5 - Math.random()}); for (i=0; i<3; i++){ names.push(players[i]); } document.getElementById("demo").innerHTML = names; } </code></pre>

关于javascript - 如何生成3个名字不重复的名字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39947280/

相关文章:

java - 如何将 int 转换为 byte[]?

math - 如何评估matlab中函数的导数?

python - 如何在python中计算数值导数的边界点?

javascript - 如何防止在图形区域或浏览器窗口调整大小时隐藏 highcharts 工具提示弹出窗口?

javascript - JavaScript 中的保留字列表

javascript - 在路径表面外绘制轮廓

java - 当我使用泛型方法时抛出类转换异常

c - 传递数组而不是指向 C 中函数的指针

javascript - 在javascript中将数字四舍五入到一位小数

javascript - 复选框不显示为图像