JavaScript中数组的队列方法与栈方法

JavaScript中数组的队列方法与栈方法

在ECMAScript的数组方法中,有两个非常有意思的方法,栈方法和队列方法。
既然提到了栈方法,那么就不得不稍稍普及一下栈的知识了。在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种数据结构。栈是一种可以限制插入和删除项的数据结构,在栈中,最新添加的项最早被移除,所有过程只发生在栈的顶部(一种先进后出的数据结构)。
JavaScript中数组的队列方法与栈方法
入栈出栈过程

一、下面我们来介绍今天的第一种方法——栈方法(后进先出):
结合使用push()方法和pop()方法可以实现数组的栈方法。
push()方法能够接收任意数量的参数,并且把它们逐个添加到数组的末尾,并返回修改后数组的长度。

    var colors = ['red','blue'];
    colors.push('brown','black');
    console.log(colors);   //["red", "blue", "brown", "black"]控制台输出结果

pop()方法则移除数组的最后一项,并且返回。

    var colors = ["red", "blue", "brown", "black"];
    colors.pop();
    console.log(colors);  // ["red", "blue", "brown"]; 控制台输出结果

下面看一下push()与pop()结合使用的结果:

   //栈方法
    var colors = ['red','blue'];
    colors.push('brown','black');
    console.log(colors);   //["red", "blue", "brown", "black"]
    colors.pop();
    console.log(colors);  //["red", "blue", "brown"]

二、队列方法(先进先出):
队列方法在数组的末端添加,在前端移除。
shift()能够移除数组中的第一项,并返回该项,同时数组的长度减一。
shift()方法和push()方法结合使用,可以像队列一样使用数组。

   //队列方法
    var person = ['one','two'];
    person.push('three','four');
    console.log(person);   //["one", "two", "three", "four"]
    person.shift();
    console.log(person);   //["two", "three", "four"]

还有一种unshift()方法,与shift()方法正好相反,它在数组前端添加任意个项并返回,与pop()方法结合使用从反方向来模拟队列,在数组前端添加,后端移除。

    var persons = ['one','two'];
    persons.unshift('three','four');
    console.log(persons);   //["three", "four", "one", "two"]
    persons.pop();
    console.log(persons);   //["three", "four", "one"]

本人是一个前端小白,对于好多基础知识掌握的还不够扎实,如果有理解不正确的地方欢迎大家指出。