科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件用JavaScript数组创建数据结构

用JavaScript数组创建数据结构

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

JavaScript数组是这样一种设计元素,它提供了一些开发人员常常忽视的特性。本文就利用JavaScript数组创建一个堆栈和队列数组结构来解释其中的一些特性。

作者:builder.com.cn 2007年3月5日

关键字: Tony Patton 数据结构 JavaScript

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共19页)

JavaScript与一些更加稳定的语言相比,比如Java和C语言,有许多相似之处,但是它确实有很多鲜为人知的特性。JavaScript数组是这样一种设计元素,它提供了一些开发人员常常忽视的特性。本文就利用JavaScript数组创建一个堆栈和队列数组结构来解释其中的一些特性。

数组

你可以使用JavaScript的数组对象在一个变量下保存一组数值。列表A里的JavaScript创建了一个带有5个元素(每个都对应一个Web网站的地址)的数组,并在这个数组里循环,在一个提醒对话框里显示每个值。

JavaScript并不是一定要支持多维数组,但是你可以获得带有数组的数组。JavaScript的数组对象能够提供的功能不只对数组的基本支持;它还可以被用于提供队列和堆栈功能。

排入队列

队列是一种使用先进先出(FIFO)方式保存和处理数据的数据结构。它与人们在银行排队等候类似,按先来后的顺序等候服务。被新加到队列里的项目排在列表的结尾。

JavaScript的数组对象为你的代码使用队列提供了两个方法:

  • shift删除和返回数组的第一个元素。
  • push允许你向数组的结尾添加一个或者多个元素。它会返回新数组的长度。

这两个方法都会影响数组的长度,push让数组的长度增加1,而shift让数组的长度减少1。列表B里的代码显示了这两个方法,它们被用来创建数字的对列并取回第一个对列元素。

下面就是生成的输出结果:

1
2

这个简单的例子利用push方法向数组(1和2)加入了两个整数。然后,shift方法从数组(1)返回了第一个元素,而另外两个值被加到了数组(3和4)里;第一个元素被取回(2)并显示出来。

另外一个可用方法是unshift,它允许你在数组的开头插入一个或者多个元素,这与pop方法截然相反,后者用来在数组的结尾加入项目。Unshift方法会返回新的长度。在列表C里,我改变了先前的例子从而用到unshift方法。

你会注意到由于所有的东西现在都被加到了数组的开头,所以输出的结果发生了变化。按页面上的按钮所运行的脚本会显示下面的值:

2
4

队列主要针对数据结构里的第一个元素,而堆栈更多的用于最后加入的项目。

堆栈

堆栈是一种利用后进先出(LIFO)方式处理数据的数据结构。或者,你可以把它想象为一个下推表,也就是新的项目被压到列表里已经存在的项目的上面,这样最后加入的项目被放在列表的首位。

Push方法和数组对象的pop方法合起来使用可以提供堆栈的功能。Pop方法被用来移除和返回数组的最后一个元素。一般来说,它会弹出加到数组里的最后一个元素。这个方法对数组的长度有影响(由于项目被移除,此长度要减掉1)。列表D里的示例同时使用了pop和push方法来实现一个堆栈的数据结构。

我们得到了下面的结果:

2
4
3

这些方法的功能多少有一点重复,因为你也可以用shift/unshift实现一个堆栈数据结构。列表E里的代码使用shift和unshift方法重新编写了前面的堆栈示例。

你可以使用unshift和pop数组方法重新编写上面的队列示例,具体方法见列表F里的示例。

更多选择

就和其他所有的开发语言一样,JavaScript有自己的一套东西。其中的一个好例子是数组对象的多次使用,这让你能够轻易地使用堆栈和队列数据结构。当你构建Web应用程序的时候,这些数据结构是你手头的另一个开发选择。

Tony Patton的职业生涯开始于应用程序开发员,并已经获得了代表其专业水平的JavaVBLotusXML认证。

责任编辑:德东

查看本文的国际来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章