JavaScript数组的栈方法与队列方法详解

 更新时间:2016年05月26日 16:26:48   作者:鳄山维虾壳集思园  
这篇文章主要介绍了JavaScript数组的栈方法与队列方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

数组(Array)和对象(Object)应该是JavaScript中使用最多也是最频繁的两种类型了,Array提供了很多常用的方法:栈方法、队列方法、重排序方法、操作方法、位置方法、迭代方法等等。

1、Array的栈方法

栈是一种LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。栈中项的插入(push)和移除,只发生在一个位置——栈的顶部。ECMAScript为数组提供了push()和pop()方法,可以实现类似栈的行为。下面两图分别演示了入栈与出栈操作。 这里写图片描述 这里写图片描述

push()方法可以接收任意数据的参数,把它们逐个添加到数组末尾,并返回修改后的数组长度。pop()方法从数组末尾移除最后一项,减少数组的length值

var students = [];
students.push("bluce","jordan","marlon","kobe");//入栈4项
alert(students.length);   //4
alert(students[0]);     //"bluce",第一项在栈的底部
alert(students[1]);     //"jordan"
students.push("paul");
alert(students.length);   //5
var item = students.pop(); //"paul"
alert(students.length);   //4

2、Array的队列方法

栈数据结构的访问规则是LIFO(后进先出),而队列数据结构的访问规则是FIFO(First-In-First-Out,先进先出)。队列在列表的末端添加项,从列表的前端移除项。push()方法是向数组末端添加项的方法,因此要模拟队列只需一个从数组前端取得项的方法——shift(),其能够移除数组中的第一个项并返回该项,同时数组的length-1。结合使用shift()和push()方法,可以像使用队列一样使用数组。


这里写图片描述
这里写图片描述

var students = [];
students.push("bluce","jordan","marlon","kobe");//入队4项
//students=["bluce","jordan","marlon","kobe"];
alert(students.length);   //4
alert(students[0]);     //"bluce",第一项在栈的底部
alert(students[1]);     //"jordan"
students.push("paul");
alert(students.length);   //5
//students=["bluce","jordan","marlon","kobe","paul"];
var item = students.shift();  //"bluce"
alert(students.length);   //4
//students=["jordan","marlon","kobe","paul"];

此外,ECMAScript还提供了unshift()方法,它能在数组前端添加任意个项并返回新数组的长度。因此,结合使用unshift()和pop()方法,可以从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项

相关文章

  • 第九章之路径分页标签与徽章组件

    第九章之路径分页标签与徽章组件

    Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。本文给大家介绍路径分页标签与徽章组件,感兴趣的朋友一起学习吧
    2016-04-04
  • Cookie 注入是怎样产生的

    Cookie 注入是怎样产生的

    现在很多网站都加了防注入系统代码,你输入注入语句将无法注入~~感觉这样的防注入系统不错,但防注入系统没有注意到 Cookies 的问题!所以就有了Cookies注入~~
    2009-04-04
  • 深入理解JavaScript系列(6) 强大的原型和原型链

    深入理解JavaScript系列(6) 强大的原型和原型链

    JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型
    2012-01-01
  • 使用JavaScript开发IE浏览器本地插件实例

    使用JavaScript开发IE浏览器本地插件实例

    这篇文章主要介绍了使用JavaScript开发IE浏览器本地插件实例,本文讲解使用JS+注册表的方式开发一个IE浏览器本地插件,需要的朋友可以参考下
    2015-02-02
  • JavaScript async/await原理及实例解析

    JavaScript async/await原理及实例解析

    这篇文章主要介绍了JavaScript async/await原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • javascript 中按属性值查找数组中的对象多种方法

    javascript 中按属性值查找数组中的对象多种方法

    JavaScript 数组可以保存混合类型的不同值,例如字符串、空值或布尔值,并且不需要数组的大小来指定它在哪里自动增长和动态,这篇文章主要介绍了javascript 中按属性值查找数组中的对象多种方法,需要的朋友可以参考下
    2023-06-06
  • js获取url传值的方法

    js获取url传值的方法

    这篇文章主要介绍了js获取url传值的方法,实例分析了字符串分割与正则分析两种方法,并补充了一个基于正则匹配实现的js获取url的get传值函数,需要的朋友可以参考下
    2015-12-12
  • js实现Element中input组件的部分功能并封装成组件(实例代码)

    js实现Element中input组件的部分功能并封装成组件(实例代码)

    这篇文章主要介绍了纯生js实现Element中input组件的部分功能(慢慢完善)并封装成组件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • JS如何获取URL中的Query参数

    JS如何获取URL中的Query参数

    这篇文章主要介绍了JS如何获取URL中的Query参数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • 简单实现bootstrap选项卡效果

    简单实现bootstrap选项卡效果

    这篇文章主要为大家详细介绍了如何简单实现bootstrap选项卡效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02

最新评论