console
let users = Array.from({ length: 200 }, (v, i) => {
if (i <= 9) {
return { name: 'top10_' + (i + 1), smoked: false }
}
return { name: 'user_' + (i + 1), smoked: false}
})
const $users = document.getElementById('users')
function drawUser () {
$users.innerHTML = ''
users.forEach(item => {
const tag = document.createElement('div')
tag.innerHTML = '名字: ' + item.name + '</ br>' + '是否已抽取: '+ (item.smoked ? '是' : '否')
$users.appendChild(tag)
})
}
drawUser()
function getRandomIndex(arr) {
return Math.floor(Math.random() * arr.length)
}
function updateDraw(arr, i) {
arr[i].smoked = true
}
function isAllsmoked() {
return users.every(item => {
return item.smoked
})
}
function onDraw() {
if (isAllsmoked()) {
alert('全部抽奖完毕')
console.log('全部抽奖完毕')
return
}
const top10 = users.slice(0, 10)
const more = users.slice(10)
let top10all = top10.every(item => {
return item.smoked
})
let index = 0
if (!top10all) {
index = Math.round(Math.random() * top10.length)
} else {
index = Math.round(Math.random() * (users.length - 10 - 1)) + 10
}
if (!users[index].smoked) {
updateDraw(users, index)
drawUser()
if (!isAllsmoked()) {
onDraw()
} else {
console.log('全部抽奖完毕')
}
} else {
onDraw()
}
}
<div id="users"></div>
<button onclick="onDraw()">
点击抽奖
</button>