2011-07-06 73 views
1

如果我有一個數組,如刪除雙重價值 -從陣列傳統的ASP

array(0) = 85 
array(1) = 85 
array(2) = 53 
array(3) = 203 
array(4) = 85 

我怎樣才能讓沒有雙重價值的新數組?所以陣列將

array(0) = 85 
array(1) = 53 
array(2) = 203 

回答

0

我不知道是否有在VBS函數從array.If它不存在,你可以使用following.May是問題的語法,但您可以刪除重複的元素使用策略

length=5 
    newLength=1 
    for i=0 to length-1 

     for j=0 to newLength-1 
     if(array(i)=array(j)) then 
    exit For 
    end if 
     next 
     if(j=newLength) then 
    array(newLenth++)=array(i); 
    end if 

    next 
0

如果您對數組進行排序,您也可以在n日誌n中執行此操作。

+0

可以顯示和例子請或東西的鏈接,顯示了一個例子,我可以學習如何做到這一點? –

+1

如果你排序數組仍然必須刪除重複,並且必須使用下面的方法。所以在這裏考慮排序並不是一個好主意,我認爲 – Rasel

+0

+1指出刪除dups不需要排序。 –

1

my answer to your previous question使用功能與測試代碼像

Dim aA : aA = Split("85 459 459 90 85 85 85") 
    Dim aRes : aRes = diffArray(aA, Array()) 
    WScript.Echo "A :", Join(aA) 
    WScript.Echo "UNI:", Join(aRes(0)), "settifieds" 

爲您提供:

A : 85 459 459 90 85 85 85 
UNI: 85 459 90 settifieds 
2

我知道這是老問題,但最近我碰到,我需要刪除冗餘entires相同的情況來來自陣列。我搜索了但沒有找到任何簡單的方法做相同的搜索後,我得到了簡單的方法Hey, Scripting Guy! Blog

this鏈接

Set objDictionary = CreateObject("Scripting.Dictionary") 

arrItems = Array("a","b","b","c","c","c","d","e","e","e") 

For Each strItem in arrItems 
    If Not objDictionary.Exists(strItem) Then 
     objDictionary.Add strItem, strItem 
    End If 
Next 

intItems = objDictionary.Count - 1 

ReDim arrItems(intItems) 

i = 0 

For Each strKey in objDictionary.Keys 
    arrItems(i) = strKey 
    i = i + 1 
Next 

For Each strItem in arrItems 
    Wscript.Echo strItem 
Next 

希望這將幫助一些一個