大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> Script -> 在JavaScript中建立自己的集合对象

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

时间: 2021-07-31 作者:daque

collection对象 - 在perl中命名 - 组合数组 - 提供了一种用于在内存中保存和提取数据项的方法;该方法基于“值”对数据结构。您可以根据数据项的关键字插入和提取,并且每个数据项的关键字是唯一的,并且它们不会重复。 “关键字 - 数字”特别有用的是制作集合。此外,单值提供标签关键字或检查关键字的独特功能是否检查。

集合不是一个新的概念,除了perl,很多语言都支持它,例如vbscript和visual basic。但是,如果您想在javascript中使用集合对象,但您并不是那么幸运。 javascript的5.0和5.0版本不支持集合对象 - 除非您自己构建它们。我将使用collection对象创建一个等效的模型,然后用javascript实现它。

请参阅使用vbscript实现的模型

使用服务器端vbscript编写代码时,我通常使用集合对象来处理例行任务,例如管理小型数据库。例如,假设有两个数据库表,一个用于销售公司的零件列表,另一个用于存储生产地址,如图a所示。

图a.

假设您必须建立基于web的报告(报告),包括零件,描述和生产者地址的数量。您可以编写类似于以下内容的sql语句。选择p.part_nbr,p.description,f.na我来自tblpart p,tblfactory f,perfortory_nbr = f.factory_nbr ourcer作者:part_nbr asc

看起来很简单吗?但是假设出于某种原因,您需要的部件已存在于ado recordset中。例如,您需要使用零件表的信息生成代理报告(佣金报告),您应该怎么做?在任何情况下,您都可以在代码列表a中使用select语句,或循环查找零件记录集并使用每个零件记录的select语句以获取制造商的名称。这两种方法是可行的,但访问存储设备是脚本可以实现的工作中最耗时的。当我遇到这种情况时,我通常会使用select语句获取制造商名称和制造商代码,例如

选择factory_nbr,来自tblortory的名称

使用javascript实现自己的集合

现在,您应该了解这个模型如何在vbscript中工作,现在让我们了解javascript如何实现。正如我之前提到的那样,collection对象通过关键字存储数据项。在此示例中,关键字是制造商代码,制造商的名称是数据项。

为了便于使用,我将vbscript中的字典对象选择为模型,该模型实现了表a中所示的方法。表a

方法/属性

例子

阐明

添加

object.add(关键字,数据项)

在集合中添加“关键字”基于 ”

数数

object.count

返回集合中的数据项的数目。

存在

object.exists(关键字)

如果关键字存在,返回“真”,否则返回“假”。

物品

object.item(关键字,数据项)object.item(关键字)

将一个数据项和关键字。返回对应于数据项的关键词。

移除所有

在javascript中建立自己的集合对象图1

object.removeall()

删除所有 - 集合中的“关键词数据项”对。

消除

object.remove(关键字)

删除此“关键字 - 数据项”对。

钥匙

object.keys()

返回包含所有关键字的数组。

为了在javascript中创建一个集合,你需要使用的构造函数。在javascript的5.0和更早版本,构造函数的书写和使用是一样的类的visual basic(或其他支持对象)的构造。使用构造被认为是建设性的目的。该方法和构造的属性的定义是从javascript的正常功能的javascript构造分离。

在编写构造函数,你可以用这个关键字来访问属性和对象的方法。 constructuring的任务是初始化对象,属性和方法。我们的集合对象有三个属性:this.objcollection,this.count和this.error。从列表c中提取的代码中,我们可以看到属性的定义可能是什么样的。

清单c:this.objcollection = new对象; //关联数组this.count = 0; //项目的总数.error = false; //错误指示

除了包括这三个属性之外,我们的集合对象还有六种方式:this.add,this.exists,this.item,this.removell,this.remove和this.key。这些方法的定义类似于属性的定义方法,不同之处在于该方法的目的是揭示该功能。因此,在add方法中,您需要列表d中所示的代码。

清单d:this.add = coladd; //添加方法void函数coladd(strkey,stritem){/ *功能:coladd代码日期:八月16,2002程序员:edmond woychowsky目的:此函数的目的是将项目添加到collection object.update日期:程序员:描述:* / this.error = false; //默认成功if(typeof(thing.objcollection [strice])=='未定义'){++ this.count;这个.objcollection [stry] = stritem;} else.error = true; // 错误}

类似于添加方法,其他方法还需要自己的定义和功能。一旦完成了这些方法的定义和功能,我他们可以尝试我们的收藏对象。为了简洁起见,我将跳过其他功能方法的定义,简单地介绍了新的javascript的新集合对象的集合。第一个任务是创建此对象的实例:var colfactory = new collection(); //建立一个实例一旦建立了集合对象的实例,添加数据项是一个简单的东西。回到上一个报告示例,可以轻松地在列表e中轻松设置收集任务中的收集任务。

列出e:while(!rstfty.eof){

colfactory.add(rstfty.field('factory_nbr')。值,rstfty.field('name');值); rstfty.movenext}

您只能通过一行代码获取供应商名称:strfactoryname = colfactory.item(strfactorynumber);

总结

通过对vbscript的优点进行建模,您可以构建自己的收集对象以弥补javascrpt的缺点不支持集合对象。只需使用少量代码作为价格,您可以使用javascript中的集合。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.