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 相关文章推荐
ASP Json Parser修正版
Dec 06 Javascript
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
Aug 13 Javascript
js简单实现HTML标签Select联动带跳转
Oct 23 Javascript
JSONP之我见
Mar 24 Javascript
js实现C#的StringBuilder效果完整实例
Dec 22 Javascript
js添加绑定事件的方法
May 15 Javascript
用iframe实现不刷新整个页面上传图片的实例
Nov 18 Javascript
JavaScript严格模式下关于this的几种指向详解
Jul 12 Javascript
Vue组件间通信 Vuex的用法解析
Aug 05 Javascript
Vue 打包体积优化方案小结
May 20 Javascript
使用JavaScript实现贪吃蛇游戏
Sep 29 Javascript
JS算法教程之字符串去重与字符串反转
Dec 15 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脚本的10个技巧(6)
2006/10/09 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
jQuery 1.0.2
2006/10/11 Javascript
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
Python常用列表数据结构小结
2014/08/06 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
管理信息系学生的自我评价
2014/01/11 职场文书
装修协议书范本
2014/04/21 职场文书
2014最新离职证明范本
2014/09/12 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
教师工作表现自我评价
2015/03/05 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
解决vue中provide inject的响应式监听
2022/04/19 Vue.js