JS中的数组提供了四个操作,以便让我们实现队列与堆栈!

小理论:

队列:先进先出

堆栈:后进先出

实现队列的方法:

shift:从集合中把第一个元素删除,并返回这个元素的值。

unshift: 在集合开头添加一个或更多元素,并返回新的长度

push:在集合中添加元素,并返回新的长度

pop:从集合中把最后一个元素删除,并返回这个元素的值。

具体说明:

1.shift()定义和用法

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

语法:arrayObject.shift()

返回值:数组原来的第一个元素的值。

说明:如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。

提示和注释:

注释:该方法会改变数组的长度。

提示:要删除并返回数组的最后一个元素,请使用 pop() 方法。

实例:在本例中,我们将创建一个数组,并删除数组的第一个元素。请注意,这也将改变数组的长度:

var arr = new Array(3)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

console.info(arr);

console.info(arr.shift());

console.info(arr);

输出:

George,John,Thomas

George

John,Thomas

2.unshift()定义和用法

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

语法:arrayObject.unshift(newelement1,newelement2,....,newelementX)

参数描述:

newelement1 必需。向数组添加的第一个元素。

newelement2 可选。向数组添加的第二个元素。

newelementX 可选。可添加若干个元素。

返回值:arrayObject 的新长度。

说明:unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。

请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。

提示和注释

注释:该方法会改变数组的长度。

注释:unshift() 方法无法在 Internet Explorer 中正确地工作!

提示:要把一个或多个元素添加到数组的尾部,请使用 push() 方法。

实例:在本例中,我们将创建一个数组,并把一个元素添加到数组的开头,并返回数组的新长度:

var arr = new Array()

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

console.info(arr);

console.info(arr.unshift("William"));

console.info(arr);

输出:

George,John,Thomas

4

William,George,John,Thomas

3.push() 定义和用法

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

语法:arrayObject.push(newelement1,newelement2,....,newelementX)

参数描述:

newelement1 必需。要添加到数组的第一个元素。

newelement2 可选。要添加到数组的第二个元素。

newelementX 可选。可添加多个元素。

返回值:把指定的值添加到数组后的新长度。

说明:push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。

提示和注释:

注释:该方法会改变数组的长度。

提示:要想数组的开头添加一个或多个元素,请使用 unshift() 方法。

实例:在本例中,我们将创建一个数组,并通过添加一个元素来改变其长度:

var arr = new Array(3)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

console.info(arr);

console.info(arr.push("James"));

console.info(arr);

输出:

George,John,Thomas

4

George,John,Thomas,James

4.pop() 定义和用法

pop() 方法用于删除并返回数组的最后一个元素。

语法 :arrayObject.pop()

返回值 :arrayObject 的最后一个元素。

说明 :pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

实例 :在本例中,我们将创建一个数组,然后删除数组的最后一个元素。请注意,这也会改变数组的程度:

var arr = new Array(3)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

console.info(arr);

console.info(arr.pop());

console.info(arr);

输出:

George,John,Thomas

Thomas

George,John

push计算机语言,数组的操作push,pop,shift,unshift详解相关推荐

  1. js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip

    js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会 ...

  2. vue2实现数组push/pop/shift/unshift方法重写

    // 获取数组原型 const orginalPrototype = Array.prototype// 备份用来重新操作 const arrPrototype = Object.create(org ...

  3. 在堆栈中,push为入栈操作,pop为出栈操作

    LinkedList提供以下方法:(ArrayList无此类方法) addFirst(); removeFirst(); addLast(); removeLast(); 在堆栈中,push为入栈操作 ...

  4. js数组中foEach和map的用法详解 jq中的$.each和$.map

    数组中foEach和map的用法详解 相同点: 1.都是循环遍历数组(仅仅是数组)中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value, ...

  5. python多维数组添加元素_numpy中三维数组中加入元素后的位置详解

    今天做数据处理时,遇到了从三维数组中批量加入二维数组的需求.其中三维数组在深度学习的特征数据处理时经常会使用到,所以读者有必要对该小知识点做到清楚了解并掌握.现对三维数组中的元素位置结合代码做详细归纳 ...

  6. STM32寄存器操作端口模式CRL/CRH详解

    STM32寄存器操作端口模式CRL/CRH详解 首先,在开始讲解前,大家请先看如下一段代码: #define SDA_IN_24c02(){GPIOB->CRH&=0XFFF0FFFF; ...

  7. MySQL常用操作之创建存储过程语法详解

    MySQL常用操作之创建存储过程语法详解 前言 简介 语法 创建结构 变量结构 入参变量和出参变量 流程控制 判断(IF 语句) 判断(CASE 语句) 循环(LOOP 语句) 循环(WHILE 语句 ...

  8. mongodb java查询_java操作mongoDB查询的实例详解

    java操作mongo查询的实例详解 前言: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库 ...

  9. python使用kafka原理详解_Python操作Kafka原理及使用详解

    Python操作Kafka原理及使用详解 一.什么是Kafka Kafka是一个分布式流处理系统,流处理系统使它可以像消息队列一样publish或者subscribe消息,分布式提供了容错性,并发处理 ...

最新文章

  1. Java Calendar.add()方法的使用,参数含义。指定时间差。
  2. 提示框一段时间以后消失setTimeout
  3. 时间:2014年3月27日文件和目录操作函数
  4. mysql 语句 求比值_Mysql求百分比
  5. 《老子》第八十一章 信言不美,美言不信
  6. 802.11帧聚合技术
  7. 如何不用服务器来开发一个小游戏
  8. 我用代码来给你们分析一个赚钱的技巧
  9. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记24 popovers弹窗
  10. sudo apt-get nmap 报错锁占用
  11. 未打清分标识处理方式
  12. matlab求解方程2x的5次,5元二次方程求解
  13. Android-JNI开发系列《十二》总结JNI知识体系
  14. elasticsearch java 分页查询_elasticsearch深度分页问题
  15. CMU 15-213 Introduction to Computer Systems学习笔记(9) Program Optimization
  16. 虚拟机中安装windows XP系统
  17. 我爱你 php代码怎么打,微信翻译代码我爱你怎么写?微信翻译表白代码介绍大全...
  18. Python(数据类型思维导图)
  19. java 正则校验经纬度格式
  20. 计算机固态加机械硬盘,在台式机中添加固态/机械硬盘驱动器,让我与这篇文章一起教你...

热门文章

  1. linux安装crontab软件包,Linux 服务器 Crontab 的安装及使用
  2. Maven 配置环境变量后无法立刻生效-原因是黑窗口是配置前打开的,重新打开即可
  3. 最优化——单纯形法学习心得
  4. java企业号回调模式,微信公众平台企业号开发—开启回调模式
  5. sts4创建spring项目_使用STS4新建springboot项目
  6. python / 解决 pyinstaller 打包后运行时提示找不到模块的问题
  7. word中安装MathType
  8. NXP I.MX6ULL 交叉编译工具链下载地址?
  9. 盘点 Serverless 架构的六个特质
  10. 的微波感知_微波遥感的特点