Arrays 从数组中删除双值
如果我有一个数组,比如-Arrays 从数组中删除双值,arrays,vbscript,asp-classic,comparison,Arrays,Vbscript,Asp Classic,Comparison,如果我有一个数组,比如- array(0) = 85 array(1) = 85 array(2) = 53 array(3) = 203 array(4) = 85 如何创建没有双值的新数组?所以这个数组是 array(0) = 85 array(1) = 53 array(2) = 203 我不知道vbs中是否有从数组中删除重复元素的函数。如果它不存在,您可以使用以下方法。语法可能有问题,但您可以使用该策略 length=5 newLength=1 for i=0 to
array(0) = 85
array(1) = 85
array(2) = 53
array(3) = 203
array(4) = 85
如何创建没有双值的新数组?所以这个数组是
array(0) = 85
array(1) = 53
array(2) = 203
我不知道vbs中是否有从数组中删除重复元素的函数。如果它不存在,您可以使用以下方法。语法可能有问题,但您可以使用该策略
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
如果对数组进行排序,也可以在n log n中执行此操作。使用函数from和测试代码,如
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
我知道这是一个老问题,但最近我遇到了相同的场景,需要从阵列中删除冗余实体。我搜索了这么多,但没有找到任何简单的方法来做同样的事情 从链接
希望这会对某些人有所帮助你能展示并举例说明吗,或者提供一个链接,以展示我可以学习如何进行排序的示例?如果你对数组进行排序,你仍然需要删除重复项并使用下面的方法。因此,考虑排序在这里不是一个好主意,我认为+1是为了指出DUP删除不需要排序。
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