封装队列
function Queue () {
this.items = []
Queue.prototype.enqueue = element => {
this.items.push(element)
return this.items
}
Queue.prototype.dequeue = () =>{
return this.items.shift()
}
Queue.prototype.front = () => {
return this.items[0]
}
Queue.prototype.isEmpty = () => {
return this.items.length == 0
}
Queue.prototype.size = () => {
return this.items.length
}
Queue.prototype.toString = () => {
let resultString = ''
this.items.forEach((item) => {
resultString += item
})
return resultString
}
}
击鼓传花游戏
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script src="Queue.js"></script>
<script>
let passGame = (numList,num) => {
// 将所有元素入队列中
let queue = new Queue()
numList.forEach(element => {
queue.enqueue(element)
});
// 每次对比队头元素是否为设定的数字,若是则删除该元素,若不是则跳过
// while(queue.size() > 0){
// // 是该元素则将该首元素入一次队列并删除该首元素
// if(queue.front() == num){
// queue.dequeue()
// } else {
// queue.enqueue(queue.front())
// queue.dequeue()
// }
// }
// return queue
while(queue.size > 1){
for(let i = 0;i < num -1;i++){
queue.enqueue(queue.dequeue())
}
queue.dequeue()
}
return queue.front()
}
let arry = [0,1,2,3,4,5,6,7,8,9]
console.log(passGame(arry,1))
</script>
</body>
</html>