TipsMake.com-在上一篇文章中,我们向您介绍了几个 二维数组特性-JavaScript 中的二维数组 ,在很多情况下,当我们需要保留1个或多个列表的信息时,某些数据字符串和Array对象的数量将是最常用和最常用的工具。
示例如下:
var aNames=["Adam", "Bill", "Carl"]; //创建数组
alert (aNames [0]); //Adam-通过索引号查找
//遍历它们
cho (var j=0; j
alert (aNames [j]); //
}
但其实JavaScript也支持Associative Arrays(也称为Maps或Dictionaries),为用户提供了另一种访问未定位但互锁的对象列表的方法。链接:
但是,这个支持功能不像我们以前那样工作:
//这似乎是合理的。
var aNames=new Array ();
aNames ["Anderson"]="Adam ";
aNames ["Browne"]="Bill";
aNames ["克劳福德"]="卡尔";
alert (aNames ["Anderson"]); //显示 Adam(如预期)
//.但是 có thể không có hợp lệ:
alert (aNames.length); //显示 0 !!! (为什么不是 3?)
以上代码的作用是创建一个Array对象,然后在这个数组中的任何一个组件中不插入任何数据。下一个过程将在稍后进行:所有 JavaScript 变量(包括 Array)都将被视为具有典型 Object 基本属性的对象。这些属性建立在支持处理和监视链接数组值的能力的类块之上。示例如下:
var mapNames=new Object (); //or: var mapNames={};
mapNames ["Anderson"]="Adam";
mapNames ["Browne"]="Bill";
mapNames.Crawford="Carl"; //替代语法
mapNames [2]="二";
alert (mapNames.length); //未定义(nó không phải là một 数组)
for (var j in mapNames) {//显示键
alert (j) ; //Anderson, Browne, Crawford, 2
}
cho (var j trong mapNames) {//hiển thị dữ liệu tương ứng với mỗi key
alert (mapNames [j]); //亚当,比尔,卡尔,二
}
一对key/value值在对象的属性-Properties中经常被调用。并且Object对象支持允许用户同时设置、初始化key和value的选项:
var mapNames={
"Anderson": "Adam",//语法是关键: value
"Browne": "Bill",
"Crawford": "Carl "
};
cho (var n trong mapNames) {//显示键和价值观
alert (n + "=" + mapNames [n]); //Anderson=Adam, Browne=Bill,等等。
}
键值在左边,值在右边。这个值不一定是字符串或任何对应的对象,只需要有可用的键/值属性即可。一些信息或参考示例,您可以在此处阅读更多内容。
将对象分配给函数参数:
这个多功能函数被证明在很多情况下都非常有用,其中之一就是通过函数调用结构传输数据的过程,类似于通过变量名传递参数的过程。示例如下:
.
DoThat ({color: "Red", font: "Arial"}) ; //未命名的对象
.
function DoThat (o) {
alert (o.color); //显示:红色
alert (o.font); //显示:Arial
}
上述调用过程会创建匿名对象——Anonymous(key:value值的组合),调用的命令语法可以通过名称访问对象中的值。注意如果key是字符串的形式,初始化属性值时可以省略引号。
创建组合记录数组:
其实我们可以很方便的快速创建地图对象,添加更多的关联属性。但是,这种方法有一个缺点,例如:
var o={}; //或:var o=new Object ();
o.lastName="Anderson";
o.age=17;
。那天晚些时候。
o.LastName="Smith"; //哎呀,大写 L
如果您遗漏了任何键值的名称,那么您必须为该对象分配一个新属性。虽然 JavaScript 可以和 map 对象结合,不需要直接声明,但是这样做会帮助我们减少很多错误。
在大多数实际情况下,我们可以通过初始化一个预定义的记录来做到这一点——伴随的结构包含该对象中的所有信息和数据。然后,初始化的信息将被分配给对象,通过它我们可以很容易地对相关属性的整个系统进行分类和管理。
同时,你可能需要更多的方式来初始化原始记录值,设置默认值,固定方式。 JavaScript 语法如下:
function PersonRec () {
this.sNameLast=''; //“这个”。 cần thiết part
this.sNameFirst='';
this.nAge=0;
this.fIsParent=false;
this.asChildren=new Array ();
}
比如我们已经完成了具有某些属性的对象的初始化。并且当您达到这一步时,您可以考虑将任何对象视为具有许多不同数据字段的记录。对于那些已经拥有基于 C++ 的知识库的人来说,使用 function 关键字来初始化任何构造结构可能会很困难,但是如果在代码部分中再次包含函数或构造函数变量,则可能会令人困惑。上面的示例代码没有参数,但下面的代码将负责初始化参数变量的数量,然后将它们分配给单独的数据字段:
函数 PersonRec (p1, p2, p3, p4, p5) {
this.sNameLast=(p1!=undefined)? p1: '';
this.sNameFirst=(p2!=undefined)? em> p2: '';
this.nAge=(p3!=undefined)? p3:-1;
this.fIsParent=(p4!=undefined)? p4: false;
this.asChildren=(p5!=undefined)? p5: new Array ();
}
如果是这种情况,会检测到缺少字符或变量,并自动为相应字段分配默认数据。要创建记录,请使用以下语法:
var rPer1=new PersonRec (); //填充默认值
var rPer2=new PersonRec ("Anderson", "Adam", 35, true, ["Andy", "Al"]); //所有数据
var rPer3=new PersonRec ("Browne", "Bill"); //với một dữ liệu và Some defaults>
rPer3.nAge=43; //更新记录
rPer3.sNameFirst="William"; //更新记录
内置函数可以做的不仅仅是简单地分配数据,比如根据一些其他相关字段计算一个学校的数据,从网站读取或转发信息,从数据库中选择数据。或用户在创建 Record 对象时想要执行的任何操作。此外,这些记录失真不需要以通常的方式存储。与任何其他面向对象的编程语言一样,用户可以启动分别应用于每种不同数据类型的方法和函数。例如:
function PersonRec (p1, p2) {
this.sNameLast=p1;
this.sNameFirst=p2;
.
//--------------------------------添加一些方法; 即成员函数
this.GetFullName=function () {
return (this.sNameFirst + "" + this.sNameLast);
};
this.toString=function () {
var s="Name:" + this.GetFullName () + "n";
s +="Age:" + this.nAge + "n";
if (this.fIsParent) {
s +="Children:" + this.asChildren;
}
return (s);
};
}
我们可以很容易的看到Object.toString()组件已经有了,但是仅仅以[Object object]的形式展示输出数据,很多情况下并没有真正的用处, 这种方式只匹配集成到上面写覆盖函数,通过它我们可以很方便的在调试过程中显示数据。
使用 Record Record 数组:
我们这里初始化的一个示例对象,经常被用作数据数组中的一个组件,类似于一条记录,这是一个非常基本的集合概念。假设我们有一个数据字符串显示为一个下拉菜单,当用户选择一个组件时,系统会继续确定表单中对应的数据字段的过程。
本质上,JavaScript 将通过 AJAX 执行识别数据的过程,或分析通过网络的信息流,或只需从一个文件中。更简单的说,我们可以先在源码部分执行这个过程:
var arPersons=[
new PersonRec ("Anderson", "Adam", 35, true, ["Andy", "Alice"]),
new PersonRec ("Browne", "Bill", 25, false),
new PersonRec ("Crawford", "Carl", 45, true, ["Caroline"])
];
在完成对应记录的数组对象的初始化之后,我们就可以很方便的用JavaScript语法将整个字符串'string'了:
var oCombo=document.getElementById ('selectName'); //a
oCombo.options.length=0; //清空框
oCombo.options.length=arPersons.length; //准备重新填充
cho (var j=0; j
}
。稍后,看看选择了什么。
var i=oCombo.selectedIndex;
alert (arPersons [i].sNameFirst + "是" + arPersons [i].nAge);
数据表的显示结果会是这样的:
创建数组中元素的运算循环,然后显示PersonRec对象的属性如下:
function BuildOutputTable () {
sOut var="";
sOut +="";
sOut +="Last Name First NameAge # of Kids"
sOut +="";
cho (var j=0; j
sOut +="";
sOut +="" + rP.sNameLast + "";
sOut +="" + rP.sNameFirst + "";
sOut +="" + rP.nAge + "";
sOut +="" + rP.asChildren.length + "";
sOut +="";
}
sOut +="";
return (sOut);
}
其他一些与我们今天的主题相关的文章:
-对象作为关联数组
-掌握 Javascript 数组
-掌握 JSON (JavaScript Object Notation)
祝你好运!
评论