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 相关文章推荐
深入理解JavaScript系列(31):设计模式之代理模式详解
Mar 03 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
Sep 24 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
Nov 20 Javascript
原生js代码实现图片放大境效果
Oct 30 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
Vuex中实现数据状态查询与更改
Nov 08 Javascript
Vue+webpack实现懒加载过程解析
Feb 17 Javascript
JavaScript中的惰性载入函数及优势
Feb 18 Javascript
js中addEventListener()与removeEventListener()用法案例分析
Mar 02 Javascript
element跨分页操作选择详解
Jun 29 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
Jul 19 Javascript
JS Object构造函数之Object.freeze
Apr 28 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函数utf8转gb2312编码
2006/12/21 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
php数组操作之键名比较与差集、交集赋值的方法
2014/11/10 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
ppk谈JavaScript style属性
2008/10/10 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
安全生产责任书
2014/03/12 职场文书
静心口服夜广告词
2014/03/20 职场文书
法制宣传月活动总结
2014/04/29 职场文书
师德师风演讲稿
2014/05/05 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
学校财务管理制度
2015/08/04 职场文书
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA
MySQL创建管理HASH分区
2022/04/13 MySQL