前言 今天項目中做一個圖片效果展示,需要實時從後臺獲取圖片數據,前段做展示。想想用到隊列,比較好實現這個功能,只需要展示隊列里的數據就可以了。於是寫了個js 對列. js code 如果我們傳入 參數就會設置 隊列的大小,不設置隊列無窮大小 測試 不初始化隊列大小 //初始化沒有參數的隊列 var ...
前言
今天項目中做一個圖片效果展示,需要實時從後臺獲取圖片數據,前段做展示。想想用到隊列,比較好實現這個功能,只需要展示隊列里的數據就可以了。於是寫了個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 。