SOURCE

//定义队列

function Queue(){
    this.dataStore = [];
    this.inqueue = inqueue;     //入队
    this.outqueue = outqueue;     //出队
    this.front = front;         //查看队首元素
    this.back = back;           //查看队尾元素
    this.toString = toString;   //显示队列所有元素
    this.clear = clear;         //清空当前队列
    this.empty = empty;         //判断当前队列是否为空
}

//向队列末尾添加一个元素,直接调用 push 方法即可
function inqueue ( element ) {
    this.dataStore.push( element );
}

//删除队列首的元素,可以利用 JS 数组中的 shift 方法
function outqueue () {
    if( this.empty() ) return 'This queue is empty';
    else this.dataStore.shift();
}

//我们通过判断 dataStore 的长度就可知道队列是否为空
function empty(){
    if( this.dataStore.length == 0 ) return true;
    else return false;
}

//查看队首元素,直接返回数组首个元素即可
function front(){
    if( this.empty() ) return 'This queue is empty';
    else return this.dataStore[0];
}

//查看队首元素,直接返回数组最后一个元素即可
//读取队列尾的元素
function back () {
    if( this.empty() ) return 'This queue is empty';
    else return this.dataStore[ this.dataStore.length - 1 ];
}

//查看对了所有元素,我这里采用数组的 join 方法实现
function toString(){
    return this.dataStore.join('\n');
}

//清空当前队列,也很简单,我们直接将 dataStore 数值清空即可
function clear(){
    delete this.dataStore;
    this.dataStor = [];
}

let queue = new Queue()

queue.inqueue('a')
queue.inqueue('b')
queue.inqueue('c')
queue.outqueue()
console.log(queue.toString())
console 命令行工具 X clear

                    
>
console