Gestern, als ich ein Jahrestreffen abhielt, sah ich einen Witz über die Lotterie -Unentschieden von Vipshop, aber die Preise wurden von der Abteilung gewonnen, die die Lotterieverfahren schrieb, und der CTO überprüfte den Code vor Ort.
Ich habe kurz über die Implementierung des Lotterieprogramms nachgedacht und mehr als zehn Minuten damit verbracht, es zu schreiben. Das verwendete Hauptwissen sind Array -Addition und Löschung sowie die dem ES5 -Array hinzugefügten Index- und Filtermethoden.
Um die Gewinnrekorde nach dem Auftakt der Seite zu speichern, wurde LocalStorage verwendet, um die Gewinnrekorde zu speichern.
Am Anfang habe ich zufällige Zahlen verwendet, um die Nummer direkt zu erhalten. Ich stellte fest, dass es sehr problematisch war, die Gewinner zu beseitigen. Wenn Sie wiederholt rekursiv anrufen, wenn es zu viele Gewinner gibt und die Wahrscheinlichkeit, die Gewinner zu bekommen, am Ende zu hoch ist, habe ich zwei Arrays verwendet, um sie zu implementieren. Einer zeichnete die Gewinnnummer auf und der andere zeichnete die ungeknsame Nummer auf. Die Gewinner wurden gerade aus dem anderen Array ausgeschieden, und es gab keinen rekursiven Anruf.
Die spezifische Implementierung ist wie folgt:
var start = 1, Ende = 20, Luckylist = [], Futurelist = []; // Luckylist zeigt die Person an, die den Preis gewonnen hat, Futurelist zeigt die Person an, die die Lotterie noch nicht gewonnen hat, Start, End zeigt die Startnummer und das Ende der Lotterie an. Seite ist aktualisiert, wiederherstellen if (LocalStorage.getItem ("Lucky") {luckyList = localStorage.getItem ("Lucky"). Split (","); futurelist = futurelist.filter (Funktion (Element) {return luckylist.indexof (item) ==-1; a Lucky Number Function Raffle () {var num = math.random ()*futurelist.length; num = math.floor (num); var idx = futurelist.indexof (num); var; var; result=futureList.splice(idx,1)[0].toString();luckyList.push(result);localStorage.setItem("lucky",luckyList);console.log("lucky",result);} //Clear localstorge, if you want to reset the program to execute this function function clear () {localStorage.setItem ("Lucky", "");} Raffle ();Das obige einfache Beispiel für JavaScript, das das Lotterieprogramm implementiert, ist der gesamte Inhalt, den ich mit Ihnen geteilt habe. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.