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 相关文章推荐
20个非常有用的PHP类库 加速php开发
Jan 15 Javascript
加载jQuery后$冲突的解决办法
Jul 09 Javascript
js 调用父窗口的具体实现代码
Jul 15 Javascript
php is_numberic函数造成的SQL注入漏洞
Mar 10 Javascript
Yii2使用Bootbox插件实现自定义弹窗
Apr 02 Javascript
微信小程序页面间通信的5种方式
Mar 31 Javascript
React Native 截屏组件的示例代码
Dec 06 Javascript
vue2.0 computed 计算list循环后累加值的实例
Mar 07 Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 Javascript
浅谈vuepress 踩坑记
Apr 18 Javascript
vue+ts下对axios的封装实现
Feb 18 Javascript
JavaScript实现拖拽效果
Mar 16 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
对PHP PDO的一些认识小结
2015/01/23 PHP
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
Javascript缓存API
2016/06/14 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
关于vue面试题汇总
2018/03/20 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python装饰器decorator用法实例
2014/11/10 Python
简单的Python2.7编程初学经验总结
2015/04/01 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
详解python程序中的多任务
2020/09/16 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
预备党员入党思想汇报
2014/01/04 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
2015年商场工作总结
2015/04/27 职场文书
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python
Python Django项目和应用的创建详解
2021/11/27 Python
CSS3实现指纹特效代码
2022/03/17 HTML / CSS