二十一、运行时对象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。