zoukankan      html  css  js  c++  java
  • JS实现队列效果,先进先出

    /**
     * [Queue]
     * @param {[Int]} size [队列大小]
     */
    function Queue(size) {
        var list = [];
    
        //向队列中添加数据
        this.push = function(data) {
            if (data==null) {
                return false;
            }
            //如果传递了size参数就设置了队列的大小
            if (size != null && !isNaN(size)) {
                if (list.length == size) {
                    this.pop();
                }
            }
            list.unshift(data);
            return true;
        }
    
        //从队列中取出数据
        this.pop = function() {
            return list.pop();
        }
    
        //返回队列的大小
        this.size = function() {
            return list.length;
        }
    
        //返回队列的内容
        this.quere = function() {
            return list;
        }
    }
    
    //初始化没有参数的队列
    var queue = new Queue();
    for (var i = 1; i <= 5; i++) {
        queue.push(i);
    }
    
    console.log(queue.quere());
    console.log(queue.pop());   //从队列中取出一个
    console.log(queue.quere());
    
    
    var queue = new Queue(3);
    
    for (var i = 1; i <= 5; i++) {
        queue.push(i);
    }
    console.log(queue.quere());
    console.log(queue.pop());
    console.log(queue.quere());
    
    

    结果:

    [ 5, 4, 3, 2, 1 ]
    1
    [ 5, 4, 3, 2 ]
    [ 5, 4, 3 ]
    3
    [ 5, 4 ]

    厉害了 我的JS

  • 相关阅读:
    20189207《网络攻防实践》第一周作业
    事件冒泡
    链接分类
    JS:offsetWidth\offsetleft
    JS alert()、confirm()、prompt()的区别
    this用法
    事件绑定
    clippath
    浅谈正则
    C++大师Lippman:我对中国程序员的忠告(转载)
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/6709993.html
Copyright © 2011-2022 走看看