어제 연례 회의를 열었을 때 VIPSHOP의 복권 추첨에 대한 농담을 보았지만 복권 절차를 작성한 부서에서 상을 받았으며 CTO는 사이트의 코드를 검토했습니다.
나는 복권 프로그램의 구현에 대해 간단히 생각했고 10 분 이상을 기록했다. 사용 된 주요 지식은 어레이 첨가 및 삭제뿐만 아니라 ES5 어레이에 추가 된 인덱스 및 필터 방법입니다.
페이지를 새로 고침 한 후 우승 레코드를 저장하기 위해 LocalStorage를 사용하여 우승 레코드를 저장했습니다.
처음에는 랜덤 숫자를 사용하여 직접 숫자를 얻었습니다. 나는 승자를 제거하는 것이 매우 번거 롭다는 것을 알았습니다. 반복적으로 반복적으로 전화하면 승자가 너무 많고 승자를 얻을 확률이 너무 높으면 결국에는 두 배의 배열을 사용하여 구현했습니다. 하나는 승리 번호를 기록하고 다른 하나는 무관심 번호를 기록했습니다. 우승자는 다른 배열에서 방금 제거되었으며 재귀적인 전화는 없었습니다.
특정 구현은 다음과 같습니다.
var start = 1, end = 20, luckylist = [], futurelist = []; // Luckylist는 상을 수상한 사람을 나타냅니다. Futurelist는 아직 복권을 얻지 못한 사람을 나타냅니다. 시작, 끝 및 종료는 모든 인원의 배열을 먼저 초기화합니다. 페이지가 새로 고침됩니다. (localStorage.getItem ( "lucky")) {luckylist = localstorage.getitem ( "lucky"). split ( ","); futurelist = futurelist.filter (function (item) {return luckylist.indexof (item) == -1;}) console.log (futurelist)}, genterates, the lotsury function,, the the it at it at it at it at the the lotsury function. Lucky Number Function Raffle () {var num = math.random ()*futurelist.length; num = math.floor (num); var idx = futurelist.indexof (num); var result = futurelist.splice (idx, 1) [0] .tostring (); luckylist.push (result); localStorage.setitem ( "lucky", luckylist); console.log ( "lucky", result);} //이 기능 기능을 실행하기 위해 프로그램을 재설정하려면 Localstorge를 지우려면 clear () {localStorage.setitem ( "lucky", "");} raffle ();복권 프로그램을 구현하는 JavaScript의 위의 간단한 예는 내가 공유 한 모든 콘텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.