文档章节

js模拟栈和队列

LIAOJIN1
 LIAOJIN1
发布于 06/19 19:49
字数 293
阅读 2
收藏 0
点赞 0
评论 0

栈和队列


栈:LIFO(先进后出)一种数据结构

队列:LILO(先进先出)一种数据结构

使用的js方法


1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。

2.pop();从数组末尾移除最后一项,减少数组的值,返回移除的项。

3.shift();移除数组第一项并返回该项同时将数组的长度减一。

简单实现栈


使用push()和pop()结合实现简单栈

var colors = new Array();
var count = colors.push('red','white','blue');
alert(count);//3

var item = colors.pop();
alert(item);//blue
alert(colors.length());//2

简单实现队列


使用shift()与push()结合实现简单队列

var colors = new Array();
var count = colors.push('red','green');
alert(count);//2

var item = colors.shift();
alert(item);//red
alert(colors.length());//1

额外补充


unshift()与shift()用途相反,unshift()在数组前端添加任意个项,并返回新数组的长度。

注意:IE7以及更早版本对JavaScript的实现中存在偏差,其unshift()方法总是返回undefined而不是新数组的长度。IE8在非兼容模式下会返回正确的长度值。

© 著作权归作者所有

共有 人打赏支持
LIAOJIN1
粉丝 0
博文 9
码字总数 3497
作品 0
哈尔滨
程序员
一篇文章读懂JavaScript的EventLoop

JavaScript的单线程 众所周知JavaScript程序是单线程的执行,也就是说,同一时刻只能做一件事,这也是由于JavaScript本身就是为了浏览器而生,主要用途是用户交互和操作dom,为什么是单线程?...

阳光的记忆
05/10
0
0
Javascript的事件模型和Promise实现

1. Javascript的运行时模型——事件循环 JS的运行时是个单线程的运行时,它不像其他编程语言,比如C++,Java,C#这些可以进行多线程操作的语言。当它执行一个函数时,它只会一条路走到黑,不...

远方无风
07/12
0
0
JavaScript 事件循环机制

前端开发的童鞋应该都知道,JavaScript 是一门单线程的脚本语言。这就意味着 JavaScript 代码在执行的时候,只有一个主线程来执行所有的任务,同一个时间只能做同一件事情。 那么为什么 Java...

淘淘笙悦
07/09
0
0
javascript引用类型之Array类型

除了Object之外,Array类型恐怕是javascript中最常用的类型了。而且,javascript中的数组与其他多数语言中的数组有着相当大的区别。javascript数组的每一项可以保存任何类型的数据。也就是说...

柳哥
2015/04/06
0
0
Node.js Event Loop与浏览器 Event Loop(事件环)

要理解Event Loop首先要学习几个概念,下面就通过这些概念来一步步解析Event Loop 一:进程与线程 进程是操作系统分配资源和调度任务的基本单位,线程是建立在进程上的一次程序运行单位,一个...

张文梦
06/07
0
0
JavaScript专题之递归

JavaScript 专题系列第十八篇,讲解递归和尾递归 定义 程序调用自身的编程技巧称为递归(recursion)。 阶乘 以阶乘为例: 示意图(图片来自 wwww.penjee.com): 斐波那契数列 在《JavaScript专...

冴羽
2017/09/13
0
0
JavaScript 中的异步:Event Loop 及其他

写作时间 2016-09-30 异步 简单地说,JavaScript 是单线程执行的语言,但在使用中有很多异步执行的情况。异步的本质是用其他方式(相对同步)控制程序的执行顺序,这与其他语言中的多线程模型...

天方夜
07/04
0
0
[译] JavaScript 如何工作:对引擎、运行时、调用堆栈的概述

原文地址: https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf PS: 好久没写东西了,最近一直在准备写一个自己的博客,最后一些技术方向已经敲定了,又可...

小烜同学
2017/11/12
0
0
JavaScript执行机制深层剖析

编译阶段 词法分析(Lexing) 这个过程会将由字符组成的字符串分解成(对编程语言来说)有意义的代码块,这些代 码块被称为词法单元(token)。 简单举个例子:c = b - a 转换为 NAME "c" EQUAL...

awufan
07/12
0
0
Js Event loop 学习笔记

面试问到了这个,之前只了解JavaScript的对象原型,作用域这些,这回认真理解一下单线程的执行逻辑。 对于JS来说,语言一大特点就是单线程,这是在原语言设计为dom操作脚本时因为复杂的同步问...

Ekolia
06/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ClassNotFoundException: javax.el.ELManager

这个是因为tomcat7中的el-api2.2,有些版本太低,建议升级tomcat到8.0,利用el-api3.0就会解决这个问题。

无语年华
7分钟前
0
0
Jvm堆内存的划分结构和优化,垃圾回收详解(详细解答篇)

在JVM中堆空间划分如下图所示 上图中,刻画了Java程序运行时的堆空间,可以简述成如下2条 1.JVM中堆空间可以分成三个大区,新生代、老年代、永久代 2.新生代可以划分为三个区,Eden区,两个幸...

嘻哈开发者
19分钟前
0
0
CentOS 7.4 设置系统字符编码

1.语言变量LANG在 /etc/locale 文件中。 2.可以通过/ect/profile 来修改LC_TYPE 变量的值 添加如下代码 export LC_ALL="zh_CN.GBK" export LANG="zh_CN.GBK" 到profile文件中,变量的可以修改...

qimh
20分钟前
0
0
Kafka相关使用

安装前提,需要有jdk环境,还有zookeeper环境 zookeeper下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/ zookeeper安装参考:https://www.jianshu.com/p/f7037105db46 kafka的下......

朝如青丝暮成雪
21分钟前
0
0
CentOS7 解决无法使用tab自动补全 tab代码提示

一、前言 对于刚刚开始学习linux的新人来说,linux的一切都显着神秘,只能惊叹于大牛在Linux上行云流水的操作。今天介绍一下在linux中自动补全的功能。 对于新人来说,在不懂得技巧的情况下,...

ziluopao
27分钟前
0
0
redis安装

https://www.cnblogs.com/feijl/p/6879929.html

ghou-靠墙哭
27分钟前
0
0
Spring核心——注解自动装载

从配置上扩展 之前的文章介绍了Spring的IoC容器配置管理方面的详细内容,需要了解的可以从IoC容器的设计模式开始阅读。在介绍基于注解配置的配置之前我们再重复一下在之前提到的基本认识: ...

随风溜达的向日葵
30分钟前
2
0
ElasticSearch学习(8)—— SearchType

Elasticsearch有四种类型的SearchType 1、query and fetch 向索引的所有分片(shard)都发出查询请求,各分片返回的时候把元素文档(document)和计算后的排名信息一起返回。这种搜索方式是最...

叶枫啦啦
31分钟前
0
0
MYSQL备份工具-mysqldump

介绍 mysqldump 是文本备份还是二进制备份 它是文本备份,如果你打开备份文件你将看到所有的语句,可以用于重新创建表和对象。它也有 insert 语句来使用数据构成表。 语法 mysqldump 的语法是...

郭恩洲_OSC博客
33分钟前
0
0
我的第一个go web框架

使用了beego等go web开发框架之后,感觉各种不方便,尤其是在接收参数、和自定义输出的时候,各种难受,定义各种model,这不是找事情嘛??尤其是在角色权限控制的时候我也感觉力不从心。。。...

独坐苔痕但观罗敷
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部