一般的陣列是以循序的數值來進行索引,但是字典物件(Dictionary)是以字串來進行索引(或是以字串為鍵值),所以我們可以將字典物件看成是由字串到字串的函數關係,就像是一本字典一樣,我們可以先找到一個字(或詞彙),然後跟著就找到字(或詞彙)的解釋。
要產生一個字典物件,必須先使用 new ActiveXObject("Scripting.Dictionary") 產生一個空的字典物件,然後再使用 Add() 方法來將對應關係一個一個加進去,例如:
此範例原始碼如下:
在上述範例中,每個字典物件的索引是一個字串,例如 "Taiwan" 就對應到 "Taipei",因此 capitalOf("Taiwan") 的值就是 "Taipei"。請注意是 capitalOf("Taiwan") 是用小括弧,不是用中括弧(中括弧是用在陣列物件)。
在以下的範例中,我們會反覆的檢查字典物件的各個對應關係,所以我們先定義一個印出字典物件的函數,如下:
其中 dict.Count 代表此字典物件的項目個數,而 dict.Keys() 將會在下文說明。根據這個函數,我們就可以很方便地印出一個字典物件的對應關係。
與字典物件相關的方法還有 Remove()(刪除鍵值,同時也刪除對應的字串)、Key()(改變鍵值)和 Item()(改變對應值),請見下列範例:
此範例原始碼如下:
我們也可以使用 Keys() 和 Items() 來取出一個字典物件的鍵值和對應值,例如:
此範例原始碼如下:
在上述範例中,由 Keys() 或 Items() 所傳回的物件並不能直接使用,必須轉成 VBArray 之後,再用 toArray() 轉成 JavaScript 的陣列,這種拐彎抹角的作法,筆者猜測是因為字典物件本來就是 VBScript 的內建物件,在 JavaScript(嚴格地說,應該是微軟的JScript)反而是新進才加入的物件,因而很多支援都還籠罩在 VBScript 的陰影下,所以也只好將就一下。
常用到字典物件的方法還有 Exists()(測試某鍵值是否存在)和 RemoveAll(刪除所有的項目),請見下列範例:
此範例原始碼如下:
JavaScript 程式設計與應用:用於網頁用戶端