Arrays vbscript中两种数组的比较

Arrays vbscript中两种数组的比较,arrays,vbscript,Arrays,Vbscript,有没有办法比较两个大小相同的数组。数组的维数可以大于1,这一点很重要 例如,对于所有索引,它可能是一个仅当具有索引(i,j,k,…)的数组arrA的元素等于具有索引(i,j,k,…)的数组arrB的元素时才取值True的函数;对于其他情况,其值为False。我知道对每个…在arrA中使用,,或者至少对I=LBound(arrA,1)到UBound(arrA,1)使用嵌套的。“下一步”,但是这个解决方案对于多维数组似乎并不优雅和有效。从这个链接: firstArr=Array(“约翰”、“雅各布”

有没有办法比较两个大小相同的数组。数组的维数可以大于1,这一点很重要

例如,对于所有索引,它可能是一个仅当具有索引
(i,j,k,…)
的数组arrA的元素等于具有索引
(i,j,k,…)
的数组arrB的元素时才取值True的函数;对于其他情况,其值为
False
。我知道对每个…在arrA中使用
,或者至少对I=LBound(arrA,1)到UBound(arrA,1)使用嵌套的
。“下一步”
,但是这个解决方案对于多维数组似乎并不优雅和有效。

从这个链接:

firstArr=Array(“约翰”、“雅各布”、“萨姆”、“比尔”)
secondArr=数组(“Jen”、“Bill”、“Mike”、“Steve”、“John”)
dim matchArr()
对于i=0到uBond(firstArr)
对于j=0至ubound(第二个阵列)
如果strComp(firstArr(i),secondArr(j),1)=0,则
出错时继续下一步
redim保留matchArr(ubound(matchArr)+1)
如果err.number0,则重拨匹配arr(0):err.clear
错误转到0
matchArr(ubound(matchArr))=firstArr(i)
如果结束
下一个
下一个
出错时继续下一步
wscript.echo“匹配数为”&ubound(matchArr)+1
如果err.number0,则wscript.echo“未报告匹配。”:err.clear
错误转到0
“等等
从该链接:

firstArr=Array(“约翰”、“雅各布”、“萨姆”、“比尔”)
secondArr=数组(“Jen”、“Bill”、“Mike”、“Steve”、“John”)
dim matchArr()
对于i=0到uBond(firstArr)
对于j=0至ubound(第二个阵列)
如果strComp(firstArr(i),secondArr(j),1)=0,则
出错时继续下一步
redim保留matchArr(ubound(matchArr)+1)
如果err.number0,则重拨匹配arr(0):err.clear
错误转到0
matchArr(ubound(matchArr))=firstArr(i)
如果结束
下一个
下一个
出错时继续下一步
wscript.echo“匹配数为”&ubound(matchArr)+1
如果err.number0,则wscript.echo“未报告匹配。”:err.clear
错误转到0
“等等

它可能看起来不优雅,但比较多维数组需要查看每个维度,这可以归结为嵌套循环。它可能看起来不优雅,但比较多维数组需要查看每个维度,这可以归结为嵌套循环。嗨,Hackoo。谢谢你的回答,但这不是我想要的。在脚本中,动态
matchArr
由一维数组(
firstArr
secondArr
)中的元素填充;然后
ubound(matchArr)-lbound(matchArr)+1
给出数组中的元素数。毫无疑问,这种方法很好地找到了匹配元素的数量。但是如果
firstArr
secondArr
的精确副本,我只需要回答是/否。值得注意的是,在这种方法中,数组
{{1,2},{3,4}
{1,2},{4,3}
不同(尽管两个矩阵都使用相同的元素)。。。还有一件事。嵌套循环不是我想要的解决方案。我仍然希望有一种更有效的方法来检测数组的相等性。另外,在一般情况下,
firstArr
secondArr
的维度未知。在脚本中,两个数组可以使用
ReDim
statement.Hi Hackoo更改维度。谢谢你的回答,但这不是我想要的。在脚本中,动态
matchArr
由一维数组(
firstArr
secondArr
)中的元素填充;然后
ubound(matchArr)-lbound(matchArr)+1
给出数组中的元素数。毫无疑问,这种方法很好地找到了匹配元素的数量。但是如果
firstArr
secondArr
的精确副本,我只需要回答是/否。值得注意的是,在这种方法中,数组
{{1,2},{3,4}
{1,2},{4,3}
不同(尽管两个矩阵都使用相同的元素)。。。还有一件事。嵌套循环不是我想要的解决方案。我仍然希望有一种更有效的方法来检测数组的相等性。另外,在一般情况下,
firstArr
secondArr
的维度未知。在脚本中,两个数组可以使用
ReDim
语句更改维度。
firstArr = Array("John", "Jacob", "Sam", "Bill")
secondArr = Array("Jen", "Bill", "Mike", "Steve", "John")
dim matchArr()
for i=0 to ubound(firstArr)
    for j=0 to ubound(secondArr)
        if strComp(firstArr(i), secondArr(j), 1)=0 then
           on error resume next
            redim preserve matchArr(ubound(matchArr)+1)
            if err.number<>0 then redim matchArr(0) : err.clear
            on error goto 0
            matchArr(ubound(matchArr))=firstArr(i)
        end if
    next
next
on error resume next
wscript.echo "The number of matches is " & ubound(matchArr)+1
if err.number<>0 then wscript.echo "No match is reported." : err.clear
on error goto 0
'etc etc other stuff