gpt4 book ai didi

asp-classic - 动态增加数组大小

转载 作者:行者123 更新时间:2023-12-04 18:49:23 25 4
gpt4 key购买 nike

我在 ASP 中有这个数组

CONST CARTPID = 0
CONST CARTPRICE = 1
CONST CARTPQUANTITY = 2
dim localCart(3,20)

我像这样动态地向这个数组添加项目
localCart(CARTPID,i) = productId
localCart(CARTPRICE,i) = productPrice
localCart(CARTPQUANTITY,i) = 1

问题是,在 4 个项目之后,我仍然可以添加这些项目,但 UBound 总是返回 3。这导致我的条件失败。

我想在运行时增加这个数组的大小,以便 UBOUND 可以返回最新值。

请让我知道我该怎么做。这是我的完整代码
'Define constants
CONST CARTPID = 0
CONST CARTPRICE = 1
CONST CARTPQUANTITY = 2

'Get the shopping cart.
if not isArray(session("cart")) then
dim localCart(3,20)
else
localCart = session("cart")
end if

'Get product information
productID = trim(request.QueryString("productid"))
productPrice = trim(request.QueryString("price"))

'Add item to the cart

if productID <> "" then
foundIt = false
for i = 0 to ubound(localCart)
if localCart(CARTPID,i) = productId then
localCart(CARTPQUANTITY,i) = localCart(CARTPQUANTITY,i)+1
foundIt = true
exit for
end if
next
if not foundIt then
for i = 0 to 20

if localCart(CARTPID,i) = "" then
***ReDim Preserve localCart(UBound(localCart, 1) + 1,20)***
localCart(CARTPID,i) = productId
localCart(CARTPRICE,i) = productPrice
localCart(CARTPQUANTITY,i) = 1
exit for
end if
next
end if
end if

最佳答案

如果您在循环中动态添加项目,您将需要使用 Redim Preserve()陈述。您需要使用 Preserve部分,因此您不会丢失任何现有数据。

否则,如果您使用数组数据然后将其重新调整为另一组数据,您可以只使用 Redim()陈述

这是使用 Redim() 的很好引用/Redim Prevserve()声明:http://classicasp.aspfaq.com/general/can-i-create-an-array-s-size-dynamically.html

关于asp-classic - 动态增加数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8708715/

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