我知道如何对像这样的数组进行排序
var rand = myArray[Math.floor(Math.random() * myArray.length)];
但是我想要做的是在循环中使用它来从我的数组中选择我以前没有用这个函数选过的值。
换句话说,假设我的数组包含苹果,香蕉和橙子。我希望能够随机选择所有这三个,但我不想选择不止一次选择同一个。(我希望这是有道理的)
答案 0 :(得分:1)
您可以从数组中删除该项目,因此不会再次选择该项目
var rand = myArray.length ? myArray.splice(Math.floor(Math.random() * myArray.length), 1)[0] : undefined;
演示:Fiddle
注意:它会修改原始数组,因此如果您想保留原始数组,则需要保留不同的副本