我在下面有一个代码,它在1到6之间的随机元素上做动画。但是这里它会重复一个数字x次。
如何更改此代码以不重复随机数?
x = 6;
$("#best_brands > .flow > img").each(function() {
var timer = Math.floor(Math.random() * 300) + 600
var number = 1 + Math.floor(Math.random() * x);
fadeBrands(timer, number);
});
function fadeBrands(timer, number) {
$('#best_brands > .flow > img:lt("'+number+'")').animate({
opacity: 1
}, timer);
}
答案 0 :(得分:4)
请阅读Matt对this question的回答:
var grabBag = [1,2,3,4,5,6,7,8,9,10];
// randomize order of elements with a sort function that randomly returns -1/0/1
grabBag.sort(function(xx,yy){ return Math.floor(Math.random() * 3) - 1; })
function getNextRandom(){
return grabBag.shift();
};
var originalLength = grabBag.length;
for(var i = 0; i < originalLength .length; i++){
console.log(getNextRandom());
}
也可以考虑阅读这个问题:Unique Random Number Generator Javascript
答案 1 :(得分:0)
还有另一种方法可以做到这一点:
每次获得一个随机数时,您都可以将其存储在usedNumbers
数组中,并检查下一个随机数是否每次都存在usedNumbers
数组。