数组的push()、pop()、shift()和unshift()方法
JavaScript的数组是一个拥有堆栈和队列自身优点的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浏览器控制台输出的效果如下图所示:
数组的push()、pop()、shift()和unshift()方法相关推荐
- js数组操作(push,pop,shift,unshift,slice,splice,concat,sort)
js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首先来讲一下push和pop方法,这两个方法只会对数组从尾部 ...
- java 数组 push pop_JavaScript学习笔记:数组的push()、pop()、shift()和unshift()方法
JavaScript是一种弱类型语言,不像其它程序语言需要严格定义数据类型.在JavaScript中数组可以任意修改变动,这样也就出现了一个问题,如果边遍历数组边操作数组(比如删除当前项,则所有之后的 ...
- JS数组的push()、pop()、shift()和unshift()方法
JS数组的push().pop().shift()和unshift()方法 堆栈和队列 栈和队列都是动态的集合,在栈中,可以去掉的元素是最近插入的那一个.栈实现了后进先出.在队列中,可以去掉的元素总是 ...
- 详解数组的push()、pop()、shift()和unshift()方法
数组的push.pop.shift和unshift方法 堆栈和队列 堆栈 实现类似栈的行为 队列 实现类似队列的行为 JavaScript的数组是一个拥有堆栈和队列自身优点的global对象.也就是说 ...
- vue2实现数组push/pop/shift/unshift方法重写
// 获取数组原型 const orginalPrototype = Array.prototype// 备份用来重新操作 const arrPrototype = Object.create(org ...
- push计算机语言,数组的操作push,pop,shift,unshift详解
JS中的数组提供了四个操作,以便让我们实现队列与堆栈! 小理论: 队列:先进先出 堆栈:后进先出 实现队列的方法: shift:从集合中把第一个元素删除,并返回这个元素的值. unshift: 在集合 ...
- js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip
js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会 ...
- arr的push,pop,slice.....各种使用方法详细介绍
arr的push,pop,slice-各种使用方法 arr.push(); 向数组的末尾追加元素 会修改原数组 返回值:修改后的length值 可以追加多个 arr[1,2,3]; arr1[4,5, ...
- java数组如何pop_Js数组的操作push,pop,shift,unshift等方法详细介绍
js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首先来讲一下push和pop方法,这两个方法只会对数组从尾部 ...
最新文章
- 【算法】学习笔记(0):算法初探(逻辑抽象 + 示例 + 代码实现)
- 【随笔】写在2014年的第一天
- location的hash部分和使用window.onhashchange实现ajax请求内容时使用浏览器后退和前进功能...
- C#综合揭秘——深入分析委托与事件(上)
- baidu 地图 鼠标移上显示标签 鼠标离开隐藏标签
- 【公众号系列】站在烦恼里仰望幸福
- «持续更新«计算机名词梳理(知识点概括,名词解析,简答题)
- JTXQ、JTT部标模拟终端使用说明 --2 JTT808协议菜单
- 万达商管再次递表港交所:上半年净利润40亿元,外部股东阵容强大
- html打砖块游戏制作,JavaScript实现打砖块游戏
- C#编程:常用数学函数
- python slice函数画高维图_没想到Python还能画六维图
- OSChina 周四乱弹 —— 下班等通知,我张北华同意后才下班
- 多域名SSL证书是什么意思?
- 安全测试三部曲之APPScan介绍
- 基于51单片机SJA1000 CAN通讯实现(C语言程序)
- Linux 系统下 CodeBlocks安装与使用
- 项目四 个人所得税计算器 switch语句
- AjaxPro的应用
- 第五章第十七题(显示金字塔)(Display pyramid)
热门文章
- 【案例】长安汽车:构建全资产安全治理平台,夯实汽车行业数据安全基底
- 在Vue中搭建前端监控日志
- 微信小程序 - 获取用户当前位置信息(用于定位地址及获取地址等需求)
- 最新UE下载地址和可使用注册码(公布)
- Linux入门学习 —— 常用的基本命令(上)
- linux 文件755权限的意思,Linux文件和目录的777、755、644权限解释
- 计算机怎么搜索程序和文件格式,PDF软件如何快速搜索与查找文件?
- 浅谈如何通过自媒体渠道实现赚钱的途径与方法?
- GBase8s数据库以 RESTRICT 方式或 CASCADE 方式删除安全标签对象
- 北京化工大学数据结构2022/10/27作业 题解