• 数组的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浏览器控制台输出的效果如下图所示:

    原文:https://blog.csdn.net/qwe502763576/article/details/79055682

    虚心学习、丰富自己
  • 相关阅读:
    《DSP using MATLAB》 示例 Example 9.12
    《DSP using MATLAB》示例 Example 9.11
    《DSP using MATLAB》示例 Example 9.10
    《DSP using MATLAB》示例Example 9.9
    《DSP using MATLAB》示例 Example 9.8
    《DSP using MATLAB》示例Example 9.7
    《DSP using MATLAB》示例 Example 9.6
    《DSP using MATLAB》示例Example 9.5
    《DSP using MATLAB》示例 Example 9.4
    (转载)【C++11新特性】 nullptr关键字
  • 原文地址:https://www.cnblogs.com/tkqq000/p/14815391.html
Copyright © 2020-2023  润新知