Forum Moderators: open

Message Too Old, No Replies

JavaScript Prevent Duplicate Random Number

         

JRBVInc

6:39 am on Sep 15, 2009 (gmt 0)

10+ Year Member



I am putting together a site where I would like to list a selection of 3 randomly selected ads. I've got the random selection down and written via JavaScript however occasionally ADx will be listed in 2 or all 3 positions. How can I prevent this. I have next to no JavaScript experience so please don't make any assumptions. ;o) Here's what I've been playing with...

var ad=new Array()

ad[1]='Ad 1';
ad[2]='Ad 2';
...
ad[8]='Ad 8';
ad[9]='Ad 9';

var num=Math.floor(Math.random()*(ad.length))
document.write(ad[num])

var num=Math.floor(Math.random()*(ad.length))
while (num=num1)
{
var num1=Math.floor(Math.random()*(ad.length))
}
document.write(ad[num1])

var num2=Math.floor(Math.random()*(ad.length))
if (num=num2 ¦¦ num1=num2)
{
var num2=Math.floor(Math.random()*(ad.length))
}
document.write(ad[num2])

daveVk

7:00 am on Sep 15, 2009 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Try

var ad=new Array()

ad[1]='Ad 1';
ad[2]='Ad 2';
...
ad[8]='Ad 8';
ad[9]='Ad 9';

var x = [];
while ( x.length > 3 ) {
x[ Math.floor(Math.random()*(ad.length)) ] = 1;
}
for ( var i in x ) { document.write(ad[i]); }

JRBVInc

7:24 am on Sep 15, 2009 (gmt 0)

10+ Year Member



Thanks I got it working using...

var num = Math.floor(Math.random()*(ad.length));
document.write(ad[num])

var num1 = Math.floor(Math.random()*(ad.length))
while (num1 == num){
num1 = Math.floor(Math.random()*ad.length);
}
document.write(ad[num1])

var num2 = Math.floor(Math.random()*(ad.length))
while (num2 == num1 ¦¦ num2 == num){
num2 = Math.floor(Math.random()*ad.length);
}
document.write(ad[num2])