zoukankan      html  css  js  c++  java
  • js array queue (队列)

    前言

    今天项目中做一个图片效果展示,需要实时从后台获取图片数据,前段做展示。想想用到队列,比较好实现这个功能,只需要展示队列里的数据就可以了。于是写了个js 对列.

    js code

        /**
         * [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;
            }
        }
    

    如果我们传入 size 参数就会设置 队列的大小,不设置队列无穷大小

    测试

    不初始化队列大小
        //初始化没有参数的队列
       var queue = new Queue();
        for (var i = 1; i <= 5; i++) {
            queue.push(i);
        }
        
      console.log(queue.quere());
       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());
        queue.pop();
        console.log(queue.quere());
    

    结果 : 我们只初始化了3个size , 然而我们push 5 个,会自动 pop 。

  • 相关阅读:
    python标准库
    python常用标准库
    django-restframework-serializers
    Resources.UnloadUnusedAssets
    Shader 的 Blend
    C++STL queue
    C++STL stack
    C++STL deque
    C++STL容器重点
    C++STL 迭代器
  • 原文地址:https://www.cnblogs.com/qiaojie/p/5738225.html
Copyright © 2011-2022 走看看