Ayer, cuando celebraba una reunión anual, vi una broma sobre el sorteo de lotería de Vipshop, pero los premios fueron ganados por el departamento que escribió los procedimientos de lotería, y el CTO revisó el código en el sitio.
Pensé brevemente en la implementación del programa de lotería y pasé más de diez minutos escribiéndolo. El conocimiento principal utilizado es la adición y eliminación de la matriz, así como los métodos de índice y filtro agregados a la matriz ES5.
Para guardar los registros ganadores después de actualizar la página, LocalStorage se utilizó para guardar los registros ganadores.
Al principio, utilicé números aleatorios para obtener directamente el número. Descubrí que era muy problemático eliminar a los ganadores. Si llama repetidamente recursivamente, si hay demasiados ganadores y la probabilidad de obtener los ganadores es demasiado alta al final, por lo que utilicé dos matrices para implementarlo. Uno registró el número ganador y el otro registró el número sin hacer. Los ganadores fueron eliminados de la otra matriz, y no hubo una llamada recursiva.
La implementación específica es la siguiente:
var start = 1, end = 20, Luckylist = [], futureList = []; // Luckylist indica a la persona que ha ganado el premio, FutureList indica la persona que aún no ha ganado la lotería, inicio, final indica el número de inicio y final de la lotería // inicializar la varilla de todos los números de personal primero para (var i = inicio; i <= end; i ++) {Futurelist. La página está actualizada, restaurar if (localStorage.getItem ("Lucky")) {LuckyList = localStorage.getItem ("Lucky"). Split (","); FutureList = FutureList.Filter (function (item) {return Luckylist.IndexOf (item) ==-1;}) consolador.log (futurelist)} Número function raffle () {var num = math.random ()*futureList.length; num = Math.floor (num); var idx = futureList.IndexOf (num); var resultado = FutureList.Splice (IDX, 1) [0] .ToString (); Luckylist.push (resultado); localStorage.SetItem ("Lucky", Luckylist); Console.log ("Lucky", Result);} // Clear LocalStorge, si desea restablecer el programa para ejecutar esta función de función para ejecutar esta función Clear () {localStorage.SetItem ("Lucky", "");} raffle ();El ejemplo simple anterior de JavaScript que implementa el programa de lotería es todo el contenido que he compartido con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.