Hier, alors que je tenais une réunion annuelle, j'ai vu une blague sur le tirage au sort de Vipshop, mais les prix ont été remportés par le département qui ont écrit les procédures de loterie, et le CTO a examiné le code sur place.
J'ai brièvement réfléchi à la mise en œuvre du programme de loterie et j'ai passé plus de dix minutes à l'écrire. Les principales connaissances utilisées sont l'addition et la suppression du tableau, ainsi que l'indexation et les méthodes de filtre ajoutées au tableau ES5.
Afin de sauver les records gagnants après avoir rafraîchi la page, LocalStorage a été utilisé pour sauver les records gagnants.
Au début, j'ai utilisé des nombres aléatoires pour obtenir directement le nombre. J'ai trouvé qu'il était très difficile d'éliminer les gagnants. Si vous appelez à plusieurs reprises de manière récursive, s'il y a trop de gagnants et que la probabilité d'obtenir les gagnants est trop élevée à la fin, j'ai donc utilisé deux tableaux pour l'implémenter. L'un a enregistré le numéro gagnant et l'autre a enregistré le numéro non tiré. Les gagnants ont juste été éliminés de l'autre tableau et il n'y avait pas d'appel récursif.
La mise en œuvre spécifique est la suivante:
var start = 1, end = 20, luckylist = [], futureList = []; // LuckyList indique que la personne qui a remporté le prix, FutureList indique que la personne qui n'a pas encore gagné la loterie, le démarrage, la fin indique d'abord le numéro de début et la fin de la loterie // initialise la table i = start; i <= end; i ++) {futureList.push (i);} // si la page est rafraîchie, restaurez if (localStorage.getItem ("Lucky")) {LuckyList = localStorage.getItem ("Lucky"). LuckyList.Indexof (item) == - 1;}) console.log (FutureList)} // La fonction de loterie, chaque fois qu'il s'exécute, génère une fonction de fonction de nombre chanceux () {var num = math.random () * FutureList.Length; num = math.floor (num); var idx = FutureList.Indexof (num); var); var); var); var); result = futureList.splice (idx, 1) [0] .toString (); LuckyList.push (resole); localStorage.SetItem ("Lucky", LuckyList); console.log ("Lucky", résultat);} // Clear LocalStorge, si vous souhaitez réinitialiser le programme pour exécuter cette fonction de fonction fonction Clear () {localStorage.SetItem ("Lucky", "");} Raffle ();L'exemple simple ci-dessus de JavaScript implémentant le programme de loterie est tout le contenu que j'ai partagé avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.