当前位置:网站首页>数组的push()、pop()、shift()和unshift()方法讲解
数组的push()、pop()、shift()和unshift()方法讲解
2022-08-08 21:02:00 【皮皮灬虾】
数组的push()、pop()、shift()和unshift()方法
avaScript的数组是一个拥有堆栈和队列自身优点的global对象。也就是说JavaScript数组可以表现的像栈(LIFO)和队列(FIFO)一样操作。这也是JavaScript数组强大的可操作性的体现。
堆栈和队列
栈和队列都:是动态的集合,在栈中,可以去掉的元素是最近插入的那一个。栈实现了后进先出。在队列中,可以去掉的元素总是在集合中存在的时间最长的那一个。队列实现了先进先出的策略。
堆栈的基本概念
先上张图:
ECMAScript为数组专门提供了 shift()
和 unshift()
方法,以便实现类似队列的行为。由于 push()
是向数组末端添加数组项的方法,因此要模拟队列只需一个从数组前端取得数组项的方法。实现这一操作的数组方法就是 shift()
,它能够移除数组中的第一个项并返回该项,同时将数组长度减1
。
顾名思义, unshift()
与 shift()
的用途相反:它能在数组前端添加任意个数组项并返回新数组的长度。因此,同时使用 unshift()
和 pop()
方法,可以从相反的方向来模拟队列,即在数组的前端添加数组项,从数组末端移除数组项。
简单得回忆一下:
push()
方法可以在数组的末属添加一个或多个元素shift()
方法把数组中的第一个元素删除unshift()
方法可以在数组的前端添加一个或多个元素pop()
方法把数组中的最后一个元素删除
实现类似栈的行为
将push()
和pop()
结合在一起,我们就可以实现类似栈的行为:
在Chrome浏览器控制台输出的效果如下图所示:
实现类似队列的行为
将shift()
和push()
方法结合在一起,可以像使用队列一样使用数组。即在数组的后端添加项,从数组的前端移除项:
在Chrome浏览器控制台输出的效果如下图所示:
除此之外,还可以同时使用unshift()
和pop()
方法,从相反的方向来模拟队列,即在数组的前端添加项,从数组的后端移除项。如下面的示例所示:
在Chrome浏览器控制台输出的效果如下图所示:
边栏推荐
- Kotlin annotations
- 二分查找的坑
- 昇腾Ascend 随记 —— 昇腾 AI 的基本架构
- 并发和并行——从线程,线程池到任务
- Centos下载安装redis- 使用yum
- 目标检测论文 Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
- 最简单的idea构建微服务模块
- pm2安装配置与基本命令你知道吗?
- 去噪论文 Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising
- The access to the local projects, localhosthost can, local IP can't 】
猜你喜欢
随机推荐
【JVM内存区域】
Mysql management commands
Blazor PWA 单页应用身份认证机制示例
Bluu Seafood launches first lab-grown fish products
【浏览器打开导出的excel】
【带信息的Excel模板下载】
安装sentry
新规划|广州都市圈将以广佛为核心,广佛将有18条地铁相连通
用固态U盘让你的办公环境随身移动
单片机——串口通信(从串口接收多位数据保存到数组,发送多位数据到串口)
fashion CNNs code
目标检测论文 Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
rancher坑记录
day9 FastDFS
阿里云祝顺民:算力网络架构的新探索
Flask 教程 第十二章:日期和时间
跨域问题 什么时候出现跨域问题 如何解决跨域问题
Kotlin reflection
GeoServer introductory study: 07 - release a larger multi-tiered TIF map data
各类测试场景的检查点