js 用数组实现队列

71 阅读1分钟
    //实现队列常见操作
    function Queue() {
        //属性
        this.items = [];
        //方法

        // 1. enqueue(element) 向队列尾部添加元素
        Queue.prototype.enqueue = function(element) {
            //如果传入值为数组
            if(Array.isArray(element)){
                for (let i = 0; i < element.length; i++) {
                    this.items.push(element[i]);
                }
            }else{
                this.items.push(element)
            }
        }

        // 2. dequeue() 移除队列的第一项 ,并返回移除元素
        Queue.prototype.dequeue = function () {
            return this.items.shift();
        }

        // 3. front() 返回队列中第一个元素,不修改队列
        Queue.prototype.front = function () {
            return this.items[0]
        }

        // 4. isEmpty() 是否为空队列
        Queue.prototype.isEmpty = function () {
            return this.items.length === 0;
        }

        // 5. size() 返回队列的长度
        Queue.prototype.size = function () {
            return this.items.length;
        }

        // 6. toString() 
        Queue.prototype.toString = function () {

            let result = '';

            for ( let i = 0; i < this.items.length; i++ ) {

                let sign = this.items.length-1 === i ? '':','

                result += this.items[i] + sign;
            }

            return result;
        }
    }
    
    let queue = new Queue();