文档章节

js模拟栈和队列

LIAOJIN1
 LIAOJIN1
发布于 06/19 19:49
字数 293
阅读 3
收藏 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
JS运行机制(同步、异步、Event Loop)

一、JS为什么是单线程的 Javascript语言的一大特点就是单线程,同一时间只能做同一件事,那么为什么JS不能多线程呢? 作为浏览器脚本语言,Javascript的主要用途是与用户互动,以及操作DOM,...

一叶落知天下秋grow
08/07
0
0
总结:JavaScript异步、事件循环与消息队列、微任务与宏任务

前言 Philip Roberts 在演讲 great talk at JSConf on the event loop 中说:要是用一句话来形容 JavaScript,我可能会这样: “JavaScript 是单线程、异步、非阻塞、解释型脚本语言。” 单线...

正伟_
前天
0
0
JavaScript 事件循环机制

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

淘淘笙悦
07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS 安装PHP5和PHP7

安装PHP5 下载解压二进制包 [root@test-a src]# cd /usr/local/src/[root@test-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[root@test-a src]# tar jxvf php-5.6......

野雪球
今天
4
0
windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
3
0
LinkedHashMap源码解析

前言 HashMap中的元素时无序的,也就是说遍历HashMap的时候,顺序和放入的顺序是不一样的。 如果需要有序的Map,就可以采用LinkedHashMap. LinkedHashMap通过维护一个包含所有元素的双向链表,...

grace_233
今天
3
0
初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
5
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部