有没有办法让两个元素从数组中选择随机项目但不会是同一个项目 - Javascript

Posted

技术标签:

【中文标题】有没有办法让两个元素从数组中选择随机项目但不会是同一个项目 - Javascript【英文标题】:is there a way to make two elements pick random items from a array but won't be the same item - Javascript 【发布时间】:2020-11-30 08:34:19 【问题描述】:

我创建了一个函数,其中两个不同的元素(randomColor1 和 randomColor2)从数组中选择一种颜色。但问题有时是两个元素(randomColor1 和 randomColor2)都选择了相同的颜色。

两个元素的值相同。

这是我的代码。你能告诉我纠正这个问题的确切代码是什么。 我希望两个元素彼此选择不同的颜色。我是 javascript 新手。

function GetValue() 
  var myarray = new Array("#ff0000", "#ffe100", "#95ff00", "#2c8d94","#911961");

  var randomColor1 = myarray[Math.floor(Math.random() * myarray.length)];
  var randomColor2 = myarray[Math.floor(Math.random() * myarray.length)];
  
  document.getElementById("message").innerhtml = randomColor1 + randomColor2;

【问题讨论】:

您可以在将颜色分配给随机变量时从数组中删除它们。 随机播放并弹出 @epascarello - 我得到了“流行音乐”,但为什么要随机播放? @RobMoll 你怎么随机化它? @epascarello 这不是myarray[Math.floor(Math.random() * myarray.length)] 在做什么吗? 【参考方案1】:

只需从数组中删除您要取出的元素,以确保您不会再次选择相同的元素:

var randomColor1 = myarray.splice(Math.floor(Math.random() * myarray.length), 1)[0];
var randomColor2 = myarray.splice(Math.floor(Math.random() * myarray.length), 1)[0];

【讨论】:

以上是关于有没有办法让两个元素从数组中选择随机项目但不会是同一个项目 - Javascript的主要内容,如果未能解决你的问题,请参考以下文章

从数组中选择一个随机元素

如何从数组中随机选择四个元素而不用Java重复?

从JavaScript中的数组中选择随机数量的元素

使用Unity从数组中随机选取4个元素

js实现从数组里随机获取元素

如何从已经规定的数组中随机取出一个元素?