2012-11-22 145 views
0

如何從vbscript中的數組中刪除重複項?刪除數組中的重複項

代碼:

 dim XObj(100),xObjXml 
     for s=0 to xObjXml.length-1  
     XObj(s)=xObjXml(s).getAttribute("xsx") 
     next 

請提出這個更好的答案。

回答

3

使用Dictionary收集數組的唯一項目:

>> a = Array(1, 2, 3, 1, 2, 3) 
>> WScript.Echo Join(a) 
>> Set d = CreateObject("Scripting.Dictionary") 
>> For i = 0 To UBound(a) 
>>  d(a(i)) = d(a(i)) + 1 
>> Next 
>> WScript.Echo Join(d.Keys()) 
>> 
1 2 3 1 2 3 
1 2 3 
>> 

(BTW:對於VBScript數組沒有。長度屬性)

補充:

的。字典的Keys()方法返回(唯一)鍵的數組:

>> b = d.Keys() 
>> WScript.Echo Join(b), "or:", b(2), b(1), b(0) 
>> 
1 2 3 or: 3 2 1 

新增II:(aircode!)

試圖讓物體的獨特屬性的XML集合中:(對不起!)

Dim xObjXml : Set xObjXml = ... get some collection of XML objects ... 
Dim dicAttrs : Set dicAttrs = CreateObject("Scripting.Dictionary") 
Dim i 
For i = 0 To xObjXml.length - 1     
    Dim a : a = xObjXml(i).getAttribute("xsx") 
    dicAttrs(a) = dicAttrs(a) + 1 
Next 
Dim aAttrs : aAttrs = dicAttrs.Keys() 

新增III:

.Keys()是一種方法,所以應該這樣稱呼它:

Dim aAttrs : aAttrs = dicAttrs.Keys() 

已添加IV:

對於正在使用的樣品,請參閱here

+0

:謝謝你的回答。哪裏有新的數組?在哪裏存儲?請檢查我在後期完成的更改。 – user1495475

+0

這不適用於我,請問你可以使用我已經使用的數組變量ñ給我一個例子嗎? – user1495475

+0

它表示「aAttrs = dicAttrs.Keys」的無效屬性分配。這裏有什麼語法錯誤嗎? – user1495475