gpt4 book ai didi

arrays - ASP经典中的数组合并

转载 作者:行者123 更新时间:2023-12-04 18:52:41 26 4
gpt4 key购买 nike

我正在研究 ASP 经典的 array_merge 函数。我所拥有的似乎正在工作,直到一个(或两个)参数为空或不是数组。这是我到目前为止所拥有的:

function array_merge(left, right)
dim total_size
dim i
dim merged
' Convert "left" to an array
if not isArray(left) then
left = Array(left)
end if
' Convert "right" to an array
if not isArray(right) then
right = Array(right)
end if
' Start with "left" and add the elements of "right"
right_size = ubound(right)
total_size = ubound(left) + right_size + 1
merged = left
redim preserve merged(total_size)
for i = 0 to ubound(right)
merged(right_size + i + 1) = right(i)
next
' Return value
array_merge = merged
end function

我收到错误:

错误类型:
Microsoft VBScript 运行时 (0x800A01B6)
对象不支持此属性或方法:“合并”
/_inc/nav/left-nav.inc,第 21 行

来自行 merged(right_size + i + 1) = right(i) .关于我哪里出错的任何智慧?

最佳答案

LittleBobbyTables 是对的,您应该更改参数。

我认为根据您输入的额外对象检查可以解决您的问题

function array_merge(left, right)
dim right_size
dim total_size
dim i
dim merged
''// Convert "left" to an array
if not isArray(left) then
left = Array(left)
end if
''// Convert "right" to an array
if not isArray(right) then
right = Array(right)
end if
''// Start with "left" and add the elements of "right"

right_size = ubound(right)
total_size = ubound(left) + right_size + 1

merged = array()
redim merged(total_size)
dim counter : counter = 0

for i = lbound(left) to ubound(left)
if isobject(left(i))then
set merged(counter) = left(i)
else
merged(counter) = left(i)
end if
counter=counter+1
next

for i = lbound(right) to ubound(right)
if isobject(right(i))then
set merged(counter) = right(i)
else
merged(counter) = right(i)
end if
next


''// Return value
array_merge = merged
end function

一些测试代码:
dim a: a=100
dim b: b=200

dim c: set c=nothing
dim d: set d=nothing

dim e: set e=server.createobject("scripting.filesystemobject")
dim f: set f=server.createobject("scripting.filesystemobject")


dim x,y,z,zz

x = array_merge(a,b)
y = array_merge(c,d)
z = array_merge(e,f)
zz = array_merge(a,e)

response.write x(0)
response.write x(1)

''// Accessing Nothing Values throw Error
''//response.write y(0)
''//response.write y(1)

response.write z(0).GetExtensionName("test.doc")
response.write z(1).GetExtensionName("test.doc")

response.write zz(0)
response.write zz(1).GetExtensionName("test.doc")

关于arrays - ASP经典中的数组合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3970387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com