二十一、运行时对象Dictionary
Dictionary是存储数据键和项目对的对象。
创建语法:y = new ActiveXObject("Scripting.Dictionary")
Dictionary 对象等价于 PERL 联合数组。项目可以是数据的任何形式,并存储在数组中。每个项目都与一个具有唯一性的键相联。该键用于取得单个项目,并且通常是整数或字符串,但也可以是除数组以外的任何类型。例如:
var y = new ActiveXObject("Scripting.Dictionary");
y.add ("a", "test");
示例:
//创建Dictionary对象
var sd = new ActiveXObject("Scripting.Dictionary");
sd.add("Name", "Kangjianmin");
sd.add("Age", 36);
sd.add("Gender", "Male");
keys = (new VBArray(sd.Keys())).toArray();//取key列表
values = (new VBArray(sd.Items())).toArray();//取值列表
//遍历字典
for (var i = 0; i < keys.length; i++) {
alert(keys[i] + "=" + values[i]);
}
1. Dictionary对象属性(1) Count 属性
返回一个集合或 Dictionary 对象中的条目数。只读属性。
(2) Key 属性
object.Key(key) = newkey
如果在改变一个 key 时没有发现该 key,那么将创建一个新的 key 并且其相关联的 item 被设置为空。
var d;
d = new ActiveXObject("Scripting.Dictionary");
function AddStuff()
{
var a;
d.Add("a", "Athens");
d.Add("b", "Belgrade");
d.Add("c", "Cairo");
}
function ChangeKey(oldkey, newkey)
{
var s;
d.Key("c") = "Ca";
s = "Key " + oldkey + " changed to " + newkey;
return(s);
}
(3) Item 属性
在一个 Dictionary 对象中设置或者返回所指定 key 的 item。对于集合则根据所指定的 key 返回一个 item。读/写。
object.Item(key)[ = newitem]
如果在改变一个 key 的时候没有找到该 item,那么将利用所指定的 newitem 创建一个新的 key。如果在试图返回一个已有条目的时候没有找到 key,那么将创建一个新的 key 且其相关的条目被设置为空。
function DicTest(keyword)
{
var a, d;
d = new ActiveXObject("Scripting.Dictionary");
d.Add("a", "Athens");
d.Add("b", "Belgrade");
d.Add("c", "Cairo");
a = d.Item(keyword);
return(a);
}
2. Dictionary对象方法(1) Add 方法
向 Dictionary 对象中添加一个主键条目对。如果 key 已经存在,那么将导致一个错误。
语法:object.Add (key, item)
示例:
var d;
d = new ActiveXObject("Scripting.Dictionary");
d.Add("a", "Athens");
d.Add("b", "Belgrade");
d.Add("c", "Cairo");
(2) Exists 方法
如果 Dictionary 对象中存在所指定的主键则返回 true,否则返回 false。
语法:object.Exists(key)
示例:
function keyExists(k)
{
var fso, s = "";
d = new ActiveXObject("Scripting.Dictionary");
d.Add("a", "Athens");
d.Add("b", "Belgrade");
d.Add("c", "Cairo");
if (d.Exists(k))
s += "Specified key exists.";
else
s += "Specified key doesn't exist.";
return(s);
}
(3) Items 方法
返回一个数组,其中包含了一个 Dictionary 对象中的所有条目。
语法:object.Items()
示例:
function ItemsDemo()
{
var a, d, i, s;//创建一些变量。
d = new ActiveXObject("Scripting.Dictionary");
d.Add ("a", "Athens");//添加一些主键和条目。
d.Add ("b", "Belgrade");
d.Add ("c", "Cairo");
a = (new VBArray(d.Items())).toArray();//获取条目。
s = "";
for (i in a)//遍历该 dictionary。
{
s += a[i] + "<br>";
}
return(s);// 返回结果。
}
(4) Keys 方法
返回一个数组,其中包含了一个 Dictionary 对象中的全部现有的主键。
语法:object.Keys()
示例:
function KeysDemo()
{
var a, d, i, s;//创建一些变量。
d = new ActiveXObject("Scripting.Dictionary");
d.Add ("a", "Athens");// 添加一些主键和条目。
d.Add ("b", "Belgrade");
d.Add ("c", "Cairo");
a = (new VBArray(d.Keys())).toArray();// 获得主键。
s = "";
for (i in a)//遍历 dictionary。
{
s += a[i] + " - " + d(a[i]) + "<br>";
}
return(s);//返回结果。
}
(5) Remove 方法
从一个 Dictionary 对象中删除一个主键,条目对。
语法:object.Remove(key)
如果所指定的主键,条目对不存在,那么将导致一个错误。
示例:
var a, d, i, s;// 创建一些变量。
d = new ActiveXObject("Scripting.Dictionary");
d.Add ("a", "Athens");// 添加一些主键条目对。
d.Add ("b", "Belgrade");
d.Add ("c", "Cairo");
...
d.Remove("b");// 删除第二对主键条目对。
(6) RemoveAll 方法
RemoveAll 方法从一个 Dictionary 对象中删除所有的主键,条目对。
语法:object.RemoveAll( )
示例:
var a, d, i;// 创建一些变量。
d = new ActiveXObject("Scripting.Dictionary");
d.Add ("a", "Athens");// 添加一些主键和条目。
d.Add ("b", "Belgrade");
d.Add ("c", "Cairo");
...
d.RemoveAll( );// 清除 dictionary。
;