我正在使用它从我的数组中获取一个随机项(并将其附加到每个列表项)
$('li').each(function(){
var items = Array('the','and','to','a');
var item = items[Math.floor(Math.random()*items.length)];
$(this).append(item);
});
我确信这是一件很简单的事,但我真的不知道在哪里看。我怎样才能确保没有重复项?
答案 0 :(得分:2)
您需要从数组中删除已使用的值。
var items = Array('the', 'and', 'to', 'a');
$('li').each(function () {
var randomNum = Math.floor(Math.random() * items.length)
var item = items[randomNum];
$(this).append(item);
items.splice(randomNum, 1);
});
答案 1 :(得分:1)
尝试
var items = new Array('the','and','to','a');
$('li').each(function(){
var item = items.splice(Math.floor(Math.random() * items.length), 1);
$(this).append(item);
});
演示:Fiddle
答案 2 :(得分:0)
所以你想要随机化但不重复的元素?那么你要找的是随机排列。如果你想要一个quick'n'dirty解决方案,只需随机交换数组中的元素。如果你想要一个均匀分布的随机排列,请看看Eric Lippert关于这个主题的文章:http://ericlippert.com/2013/05/02/producing-permutations-part-six/