想要一个长度不变的先进先出的队列。
python里有deque,JavaScript里自己写一个简单的类实现deque的基础功能:
class Deque {
constructor(size) {
this.items = [];
this.maxSize=size;//队列大小
}
isEmpty() {
return this.items.length === 0;
}
size() {
return this.items.length;
}
add(item){
if(this.items.length<this.maxSize){
this.items.push(item);
}else{
this.items.shift();
this.items.push(item);
}
}
show(){return this.items}
}
前端页面完整代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p id="demo">单击按钮创建一个数组,查看我写的deque, 并显示结果。</p>
<button onclick="myFunction()">点我</button>
<script>
class Deque {
constructor(size) {
this.items = [];//队列初始为空
this.maxSize=size;//队列大小
}
isEmpty() {
return this.items.length === 0;
}
size() {
return this.items.length;
}
add(item){
if(this.items.length<this.maxSize){
this.items.push(item);
}else{
this.items.shift();
this.items.push(item);
}
}
show(){return this.items}
}
function myFunction(){
var myque=new Deque(3)
myque.add(1)
myque.add(2)
myque.add(3)
myque.add(4)
var x=document.getElementById("demo");
x.innerHTML=myque.show();
}
</script>
</body>
</html>
运行结果: