在JavaScript中建立自己的集合对象

ZDNet软件频道 时间:2002-10-25 作者:BUILDER.COM |  我要评论()
本文关键词:
通过用VBScript来建模的优势,你可以建立自己的集合对象以弥补JavaScrpt不支持集合对象的缺点。只需以少量代码为代价,你就可以在JavaScript中使用集合了。
集合对象——在Perl中称之为联合数组——提供了一种用来在存储器中保存和提取数据项的方法;该方法基于一种提供“关键字——数值(value)”对的数据结构上。你可以根据数据项的关键字进行插入和提取操作,每个数据项的关键字都是独有的、互不重复的。“关键字——数值”对使得集合在处理查找工作时是特别有用。另外,关键字的单值性提供标记关键字或者说检查关键字是否唯一的能力。

集合并不是一个新的概念,除了Perl之外,许多语言都支持它,如VBScript和Visual Basic。但是如果你想在JavaScript中使用集合对象,你就没那么走运了。JavaScript的5.0以及5.0之前的版本都不支持集合对象——除非你自己建立它们。我将在VBScript用集合对象来建立一个等效的模型,然后用JavaScript实现它。

看看用VBScript实现的模型

当用server-side VBScript编写代码时,我通常用集合对象来处理例行任务,如管理一个小的数据库。举例来说,假定有两个数据库表,一个用来存放某公司销售的零件现货清单,另一个用于存放生产地址,如A所示。

Figure A


假设你必须建立一个基于Web的报表(report),其中包括零件数量、说明以及生产商地址。你可能会编写类似于代码清单A的SQL语句。

是不是看起来很简单?但是假定由于某些原因,你所需要的零件信息已经存在于一个ADO记录集(recordset)。例如,你需要用零件表的信息来生成代理报表(commission report),你该怎么办呢?无论怎样,你都可以用代码清单A中的SELECT语句,或者循环查找零件记录集并对每个零件记录使用SELECT语句来获取生产商的名字。这两种方法都是可行的,不过,访问存储设备可是脚本所能实现的工作中最耗时的一种。在遇到这种情况的时候,我一般用SELECT语句获得厂商名和厂商代号的,如代码清单B所示。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134