SOURCE

console 命令行工具 X clear

                    
>
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>