JS数组的push()、pop()、shift()和unshift()方法

  1. 堆栈和队列
    栈和队列都是动态的集合,在栈中,可以去掉的元素是最近插入的那一个。栈实现了后进先出。在队列中,可以去掉的元素总是在集合中存在的时间最长的那一个。队列实现了先进先出的策略。

  2. 堆栈的基本概念
    先上张图:

    JAVAScript为数组专门提供了 shift() 和 unshift() 方法,以便实现类似队列的行为。由于 push() 是向数组末端添加数组项的方法,因此要模拟队列只需一个从数组前端取得数组项的方法。实现这一操作的数组方法就是 shift() ,它能够移除数组中的第一个项并返回该项,同时将数组长度减1。

顾名思义, unshift() 与 shift() 的用途相反:它能在数组前端添加任意个数组项并返回新数组的长度。因此,同时使用 unshift() 和 pop() 方法,可以从相反的方向来模拟队列,即在数组的前端添加数组项,从数组末端移除数组项。

简单得回忆一下:

push()方法可以在数组的末属添加一个或多个元素
shift()方法把数组中的第一个元素删除
unshift()方法可以在数组的前端添加一个或多个元素
pop()方法把数组中的最后一个元素删除

JS数组的push()、pop()、shift()和unshift()方法相关推荐

  1. js数组操作(push,pop,shift,unshift,slice,splice,concat,sort)

    js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首先来讲一下push和pop方法,这两个方法只会对数组从尾部 ...

  2. java 数组 push pop_JavaScript学习笔记:数组的push()、pop()、shift()和unshift()方法

    JavaScript是一种弱类型语言,不像其它程序语言需要严格定义数据类型.在JavaScript中数组可以任意修改变动,这样也就出现了一个问题,如果边遍历数组边操作数组(比如删除当前项,则所有之后的 ...

  3. 数组的push()、pop()、shift()和unshift()方法

    JavaScript的数组是一个拥有堆栈和队列自身优点的global对象.也就是说JavaScript数组可以表现的像栈(LIFO)和队列(FIFO)一样操作.这也是JavaScript数组强大的可操 ...

  4. 详解数组的push()、pop()、shift()和unshift()方法

    数组的push.pop.shift和unshift方法 堆栈和队列 堆栈 实现类似栈的行为 队列 实现类似队列的行为 JavaScript的数组是一个拥有堆栈和队列自身优点的global对象.也就是说 ...

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

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

  6. push计算机语言,数组的操作push,pop,shift,unshift详解

    JS中的数组提供了四个操作,以便让我们实现队列与堆栈! 小理论: 队列:先进先出 堆栈:后进先出 实现队列的方法: shift:从集合中把第一个元素删除,并返回这个元素的值. unshift: 在集合 ...

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

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

  8. arr的push,pop,slice.....各种使用方法详细介绍

    arr的push,pop,slice-各种使用方法 arr.push(); 向数组的末尾追加元素 会修改原数组 返回值:修改后的length值 可以追加多个 arr[1,2,3]; arr1[4,5, ...

  9. JS数组移除元素的八种方法

    JS数组移除元素的八种方法 一.修改arr的length方法 let arr = [1,2,3,4,5,6,7,8,9]; arr.length = 3; console.log('length',a ...

最新文章

  1. python getattr调用自己模块_在Python中通过getattr获取对象引用的方法
  2. android下m、mm、mmm编译命令的使用
  3. java 蓝桥杯 基础练习 Sine之舞
  4. MySQL数据库的基本操作命令
  5. Hadoop MapReduce执行过程(一)
  6. hystrix 页面_《SpringCloud微服务之Hystrix组件》
  7. Java事务管理之Spring+Hibernate
  8. python 文本分析教程_Python笔记_第五篇_Python数据分析基础教程_文件的读写
  9. 找出数组中的最大值和最小值
  10. while循环中使用read读取变量的一点小技巧
  11. js密码强度正则表达式_相信我,这20个正则表达式,能让你少写1000多行代码,建议收藏...
  12. Python爬虫之模拟CSDN网站登录
  13. Android Unable to find source java class:<File>because it does not belong to any of the source dirs:
  14. 推荐系统三十六式:矩阵分解 总结
  15. 洛谷 CF894A QAQ
  16. OPENGL OSG setNearFarRatio可以动态调节远近剪裁面
  17. fiddler手机下载证书提示No root certificate was found. Have you enabled HTTPS traff 解决方法 及手机配置代理后无网络问题
  18. 机器学习中的二分类问题评价指标之精确率、召回率、F1值通俗理解
  19. 微信CRM系统对客户关系管理有什么好处?
  20. Cacti的基本使用

热门文章

  1. ps scavenge java_Java垃圾回收机制
  2. 电子合同系统,1秒钟识破各种合同调包计
  3. Java Agent与ASM字节码介绍
  4. 桥田QT-650快换盘在FDS热熔自攻螺接工艺中的应用
  5. 苹果电脑导出GoodNotes录音
  6. php swoole yaf,swoole+yaf 实现定时执行任务
  7. 传送门骑士无限物品的服务器,传送门骑士怎么无限刷资源 无限资源获得方法...
  8. 一个新入职同事的真实工作思考总结,写的很生动
  9. 商标查询api 模糊查询商标列表
  10. 如何在不格式化的前提下将U盘从FAT32格式改成NFTS格式