文档章节

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
JavaScript 事件循环机制

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

淘淘笙悦
07/09
0
0
JS运行机制(同步、异步、Event Loop)

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

一叶落知天下秋grow
08/07
0
0
浅析setTimeout与Promise

关于JavaScript异步编程,前文解析过了JavaScript并发模型,该并发模型基于事件循环。正巧又在Stackoverflow上回答了一个关于setTimeout与Promise执行顺序相关的问题,于是总结这一知识点,与...

熊建刚
08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka技术资料总结(不断更新中)

1、Kafka实践:到底该不该把不同类型的消息放在同一个主题中 2、Kafka剖析系列: Kafka剖析(一):Kafka背景及架构介绍 Kafka设计解析(二):Kafka High Availability (上)...

九州暮云
39分钟前
1
0
面向对象设计原则(OOP)

单一职责原则(Single responsibility principle)又称单一功能原则。它规定一个类应该只有一个发生变化的原因。 核心原则:低耦合,高内聚。 一个类,应该只有一个引起它变化的原因,也就是...

gackey
今天
4
0
C++ 锁

C++提供了两种常用的锁,std::lock_guard<Lockable &T>和std::unique_lock<Lockable &T>。通常使用场景下,这两个锁用法一致。即,在构造锁对象时上锁,在析构锁对象时解锁。使用户从上锁/解...

yepanl
今天
4
0
Kali Linux Docker 練習

docker pull kalilinux/kali-linux-docker docker run -t -i kalilinux/kali-linux-docker /bin/bash apt-get update apt-get install htop apt-get install nmap apt-get install wpscan ap......

BaiyuanLab
今天
4
0
通俗大白话来理解TCP协议的三次握手和四次分手

最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就...

onedotdot
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部