ala*_*haw 6 vbscript asp-classic
给出以下数组作为示例...
arr(0)(0) = 3
arr(0)(1) = name
arr(0)(2) = address
arr(1)(0) = 7
arr(1)(1) = name
arr(1)(2) = address
arr(2)(0) = 14
arr(2)(1) = name
arr(2)(2) = address
Run Code Online (Sandbox Code Playgroud)
我需要从数组中删除中间元素(id = 7).我知道我需要遍历数组并将每个不被删除的记录移动到一个新数组中.我试过这个......
Dim newArr,i
Redim newArr(Ubound(arr))
For i = 0 to Ubound(arr)
If (CStr(arr(i)(0)) <> 7 ) Then
newArr(i) = arr(i)
End if
Next
Run Code Online (Sandbox Code Playgroud)
调试时我可以看到if语句有效,所以我知道只复制了2个元素,但是newArr在结束时是空的.我错过了什么 我是一个PHP编码器,它是经典asp的新手,而且我常常使用数组函数来使这种东西变得不必要.任何帮助赞赏.谢谢.
你不需要新的数组,只需重新分配项目并"裁剪"数组:
Const removalIndex = 1
For x=removalIndex To UBound(arr)-1
arr(x) = arr(x + 1)
Next
ReDim Preserve arr(UBound(arr) - 1)
Run Code Online (Sandbox Code Playgroud)
此代码将从主数组中删除索引1处的数组项.如果您事先不知道要删除的项的索引,则可以通过数组上的简单循环轻松找到它.