JS实现队列的先进先出功能示例


Posted in Javascript onMay 10, 2017

本文实例讲述了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 ]

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JS的IE和Firefox兼容性集锦
Dec 11 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
Dec 04 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
Apr 26 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
Oct 14 Javascript
在JavaScript应用中实现延迟加载的方法
Jun 25 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
Aug 05 Javascript
sencha ext js 6 快速入门(必看)
Jun 01 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
Oct 14 Javascript
JS实现常见的查找、排序、去重算法示例
May 21 Javascript
Vue开发之封装上传文件组件与用法示例
Apr 25 Javascript
express + jwt + postMan验证实现持久化登录
Jun 05 Javascript
vue实现的封装全局filter并统一管理操作示例
Feb 02 Javascript
BootStrap的两种模态框方式
May 10 #Javascript
微信小程序之购物车功能
Sep 23 #Javascript
js canvas实现QQ拨打电话特效
May 10 #Javascript
bootstrap弹出层的多种触发方式
May 10 #Javascript
详解使用vue脚手架工具搭建vue-webpack项目
May 10 #Javascript
微信小程序 支付后台java实现实例
May 09 #Javascript
使用 Vue.js 仿百度搜索框的实例代码
May 09 #Javascript
You might like
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
php&amp;java(三)
2006/10/09 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
python实现爬虫下载美女图片
2015/07/14 Python
Python 复平面绘图实例
2019/11/21 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
Keras 使用 Lambda层详解
2020/06/10 Python
大数据分析用java还是Python
2020/07/06 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
三方股份合作协议书
2014/10/13 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书