网络编程
位置:首页>> 网络编程>> JavaScript>> Scripting.Dictionary 对象(2)

Scripting.Dictionary 对象(2)

作者:CNLei 来源:CNLei.blog 发布时间:2007-10-13 09:46:00 

标签:Dictionary,VBScript,Jscript

修改键或条目的值

可以通过改键的值,或通过修改与特定的键关联的条目的数据,来改变存储在 Dictionary 内的数据。下面的代码改变键为 MyKey 的条目中的数据。


ObjMyData.Item("MyKey"

) = "NewValue" ' In VBScript ObjMyData.Item('MyKey') = 'NewValue'; // In JScript 如果指定的键在 Dictionary 未找到,将在 Dictionary 中创建一个以 MyKey 为键,以 New Value 为其条目值的新的键/条目对。有意思的是,如果使用一个不存在的键来检索条目,不仅得到一个空的字符串(这是可以想到的),而且还在 Dictionary 里添加一个新的键/条目对,键即是指定的键,但条目的数据为空。


可以使用 Key 属性仅改变键的值而不改变与之对应的条目的数据。将一个已存在的键 MyKey 改变为 MyNewKey,可以用:


ObjMyData.Key("MyKey"

) = "NewValue" ' In VBScript ObjMyData.Key('MyKey') = 'NewValue'; // In JScript


如果指定的键未找到,则产生运行期错误。

设置比较模式

Dictionary 的 CompareMode 属性仅适用于 VBScript,不能在 JScript 中使用。当比较字符串键时,允许指定比较的方式。两个允许的值为 BinaryCompare(0) 和 TextCompare(1)。 BinaryCompare(0) 为二进制数对照(即区分大小写); TextCompare(1) 为文本对照(即不区分大小写)。

遍历 Dictionary

研究 Dictionary 时,有两个方法和一个属性需要特别注意,它们允许我们遍历存储在 Dictionary 里的所有键/条目对。 Items 方法用一个一维数组的形式返回 Dictionary 里所有的条目数据,而 keys 方法用一个一维数组返回所有已存在的键值。可以使用 Count 属性得到键或条目的数量。

例如,可以使用下列代码得到名称为 objMyData 的 Dictionary 中所有的键和条目值。注意,虽然 Count 属性保存了在 Dictionary 里的键/条目数量,但 VBScript 和 JScript 的数组总是从下标 0 开始的。因此,数组下标应从 0 到 Count-1。


'In VBScript:


arrKeys = objMyData.Keys 'Get all the keys into an array
arrItems = objMyData.Items 'Get all the items into an array
For intLoop = 0 To objMyData.Count – 1 'Iterate through the array
    StrThisKey = arrKeys(intLoop) 'This is the key value
    StrThisItem = arrItems(intLoop) 'This is the item (data) value
Next
// In JScript
// Get VB-style arrays using the Keys() and Items() methods
var arrKeys = new VBArray(objMyData.Keys()).toArray();
var arrItems = new VBArray(objMyData.Items()).toArray();
for (intLoop = 0; intLoop < objMyData.Count; intLoop++) {
    // Iterate through the arrays
    strThisKey = arrKeys[intLoop]; // This is the key value
    strThisItem = arrItems[intLoop]; // This is the item (data) value
}


在 VBScript 里也可以使用 For Each … Next 语句完成同样的功能:


' Iterate the dictionary as a collection in VBScript


For Each objItem in arrItems
    Response.Write objItem & " = " & arrItems(objItem) & "<br>"
Next


0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com