文章出處

前言

今天項目中做一個圖片效果展示,需要實時從后臺獲取圖片數據,前段做展示。想想用到隊列,比較好實現這個功能,只需要展示隊列里的數據就可以了。于是寫了個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 。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()