Avatar billede perh Juniormester
08. april 2003 - 11:51 Der er 6 kommentarer og
1 løsning

udelad numre i random svar

Jeg bruger en randomgenerator til at finde tilfældige svar = ID-numre - i en database.
Desværre er der huller i ID-numrene, poster slettet osv.
Kan jeg indsætte nogle faste numre, der ikke må komme ud, men i st. køre funktionen igen til der kommer et "lovligt" tal.
I denne funktion:

function rand(number) {
        return Math.ceil(rnd()*number);
};

det drejer sig om 30-40 tal, så jeg skal vel have et array?

Hvordan?
Avatar billede olebole Juniormester
08. april 2003 - 12:01 #1
<ole>

Mon ikke det ville være langt mere effektivt at gøre det serverside? Så kan du vælge en tilfældig tabelrække - af de eksisterende.

/mvh
</bole>
Avatar billede perh Juniormester
08. april 2003 - 12:23 #2
Jo, hvis jeg vidste hvordan.

så skal jeg over i PERL-afdelingen.

Men jeg ville stadig gerne vide , hvordan man løste det i javascript, så blev jeg også lidt klogere på det.
Avatar billede olebole Juniormester
08. april 2003 - 12:32 #3
var prohib = "10,22,33,55"; //Forbudte numre
function rand(number) {
        var num = Math.ceil(rnd()*number);
        if (prohib.indexOf(","+num+",")!=-1) return rand(number);
        else return num;
}
Avatar billede olebole Juniormester
08. april 2003 - 12:37 #4
Men husk på, det stigende antal brugere, der har slået JS fra, ikke får et lovligt tal. Derfor bør det gøres serverside  :)
Avatar billede olebole Juniormester
08. april 2003 - 12:39 #5
Oooops ... start og slut strengen med et komma:
  var prohib = ",10,22,33,55,"; //Forbudte numre
Avatar billede perh Juniormester
08. april 2003 - 13:16 #6
Ja, det virker - dog kan der en enkelt gang imellem snige sig et "forbudt" tal igennem - er det ved flere gennemløb?

Hvad er grunden til "det stigende antal brugere, der har slået JS fra" ?
og er det noget der er populært pt?


Giv mig et svar, så jeg kan overføre dine point.
Avatar billede olebole Juniormester
08. april 2003 - 15:27 #7
Med mindre, du har lavet en fejl, _kan_ den ikke returnere et 'forbudt' tal  :)

Årsagen til at mange slår JS fra er, at IE i meget lang tid var hullet som en si. Det betød:
1. Din HD var helt åben og kunne læses uden problemer.
2. Et site kunne læse alle dine cookies til andre sites.
3. Et site kunne læse alt, hvad du måtte skrive på andre WWW-sider, indtil en ny browser-instans blev åbnet ... incl. passwords.

De fleste huller er blevet patched for nylig - hvis man altså har seneste service-pack installeret. Alligevel er der mange, der slår JS fra for at være på den sikre side. MS har nemlig for vane først at reagere 1/2 - 1 år efter, de er blevet adviseret om en fejl.
/mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester