SOURCE

//队列
class Queue {
    //利用数组
    arr = []
    //进队列
    enter(element) {
        this.arr.push(element)
    }
    //出队列
    leave() {
        return this.arr.shift()
    }
    //长度
    size() {
        return this.arr.length
    }
    //返回数值
    value() {
        return this.arr.splice(0)
    }
}

// let a = new Queue()
// console.log(a)

//击鼓传花
//m为数到m出局
//n参加的人数 
const game = function game(n, m) {
    //所有人依次进入 队列
    let qe = new Queue(), i = 1
    for (; i <= n; i++) qe.enter(i)
    //开始数数:数到m之前 操作为 移除队列,进入队列 到 m 为 移除队列
    while (qe.size() > 1) {
        i = 1
        for (; i < m - 1; i++) qe.enter(qe.leave())
        qe.leave()
    }
    //当队列长度为1的时候,返回唯一值即可
    return qe.value()[0]
}

console.log(game(8, 5))
console 命令行工具 X clear

                    
>
console