vbscript中的array.slice(开始、结束)?
有人喜欢vbscript中的标准(如jscript、javascript)array.slice(start、end)函数的实现吗vbscript中的array.slice(开始、结束)?,vbscript,slice,Vbscript,Slice,有人喜欢vbscript中的标准(如jscript、javascript)array.slice(start、end)函数的实现吗 这似乎是vbscript程序员经常错过的,共享一个好的实现会有所帮助。如果没有人出现,我想我必须回答我自己的问题并写些东西。这是我过去使用过的一个: Function Slice(arr, starting, ending) Dim out_array If Right(TypeName(arr), 2) = "()" Then
这似乎是vbscript程序员经常错过的,共享一个好的实现会有所帮助。如果没有人出现,我想我必须回答我自己的问题并写些东西。这是我过去使用过的一个:
Function Slice(arr, starting, ending)
Dim out_array
If Right(TypeName(arr), 2) = "()" Then
out_array = Array()
ReDim Preserve out_array(ending - starting)
For index = starting To ending
out_array(index - starting) = arr(index)
Next
Else
Exit Function
End If
Slice = out_array
End Function
这是我过去用过的:
Function Slice(arr, starting, ending)
Dim out_array
If Right(TypeName(arr), 2) = "()" Then
out_array = Array()
ReDim Preserve out_array(ending - starting)
For index = starting To ending
out_array(index - starting) = arr(index)
Next
Else
Exit Function
End If
Slice = out_array
End Function
这是我过去用过的:
Function Slice(arr, starting, ending)
Dim out_array
If Right(TypeName(arr), 2) = "()" Then
out_array = Array()
ReDim Preserve out_array(ending - starting)
For index = starting To ending
out_array(index - starting) = arr(index)
Next
Else
Exit Function
End If
Slice = out_array
End Function
这是我过去用过的:
Function Slice(arr, starting, ending)
Dim out_array
If Right(TypeName(arr), 2) = "()" Then
out_array = Array()
ReDim Preserve out_array(ending - starting)
For index = starting To ending
out_array(index - starting) = arr(index)
Next
Else
Exit Function
End If
Slice = out_array
End Function
为了完整起见,这可能是一个更好的版本:
Function Slice (aInput, Byval aStart, Byval aEnd)
If IsArray(aInput) Then
Dim i
Dim intStep
Dim arrReturn
If aStart < 0 Then
aStart = aStart + Ubound(aInput) + 1
End If
If aEnd < 0 Then
aEnd = aEnd + Ubound(aInput) + 1
End If
Redim arrReturn(Abs(aStart - aEnd))
If aStart > aEnd Then
intStep = -1
Else
intStep = 1
End If
For i = aStart To aEnd Step intStep
If Isobject(aInput(i)) Then
Set arrReturn(Abs(i-aStart)) = aInput(i)
Else
arrReturn(Abs(i-aStart)) = aInput(i)
End If
Next
Slice = arrReturn
Else
Slice = Null
End If
End Function
函数片(aInput、Byval aStart、Byval aEnd)
如果是IsArray(aInput),那么
昏暗的我
暗步
暗棱返回
如果aStart<0,则
aStart=aStart+Ubound(aInput)+1
如果结束
如果aEnd<0,则
aEnd=aEnd+Ubound(输入)+1
如果结束
Redim arrReturn(Abs(aStart-aEnd))
如果aStart>aEnd,则
intStep=-1
其他的
intStep=1
如果结束
对于i=从开始到结束步骤intStep
如果是Isobject(aInput(i)),则
设置arrrurn(Abs(i-aStart))=aInput(i)
其他的
arrrurn(Abs(i-aStart))=aInput(i)
如果结束
下一个
切片=返回
其他的
切片=空
如果结束
端函数
这避免了前面答案中的一些问题:
Null
)IsArray
,而不是对输入进行字符串操作/比较为了完整起见,这可能是一个更好的版本:
Function Slice (aInput, Byval aStart, Byval aEnd)
If IsArray(aInput) Then
Dim i
Dim intStep
Dim arrReturn
If aStart < 0 Then
aStart = aStart + Ubound(aInput) + 1
End If
If aEnd < 0 Then
aEnd = aEnd + Ubound(aInput) + 1
End If
Redim arrReturn(Abs(aStart - aEnd))
If aStart > aEnd Then
intStep = -1
Else
intStep = 1
End If
For i = aStart To aEnd Step intStep
If Isobject(aInput(i)) Then
Set arrReturn(Abs(i-aStart)) = aInput(i)
Else
arrReturn(Abs(i-aStart)) = aInput(i)
End If
Next
Slice = arrReturn
Else
Slice = Null
End If
End Function
函数片(aInput、Byval aStart、Byval aEnd)
如果是IsArray(aInput),那么
昏暗的我
暗步
暗棱返回
如果aStart<0,则
aStart=aStart+Ubound(aInput)+1
如果结束
如果aEnd<0,则
aEnd=aEnd+Ubound(输入)+1
如果结束
Redim arrReturn(Abs(aStart-aEnd))
如果aStart>aEnd,则
intStep=-1
其他的
intStep=1
如果结束
对于i=从开始到结束步骤intStep
如果是Isobject(aInput(i)),则
设置arrrurn(Abs(i-aStart))=aInput(i)
其他的
arrrurn(Abs(i-aStart))=aInput(i)
如果结束
下一个
切片=返回
其他的
切片=空
如果结束
端函数
这避免了前面答案中的一些问题:
Null
)IsArray
,而不是对输入进行字符串操作/比较为了完整起见,这可能是一个更好的版本:
Function Slice (aInput, Byval aStart, Byval aEnd)
If IsArray(aInput) Then
Dim i
Dim intStep
Dim arrReturn
If aStart < 0 Then
aStart = aStart + Ubound(aInput) + 1
End If
If aEnd < 0 Then
aEnd = aEnd + Ubound(aInput) + 1
End If
Redim arrReturn(Abs(aStart - aEnd))
If aStart > aEnd Then
intStep = -1
Else
intStep = 1
End If
For i = aStart To aEnd Step intStep
If Isobject(aInput(i)) Then
Set arrReturn(Abs(i-aStart)) = aInput(i)
Else
arrReturn(Abs(i-aStart)) = aInput(i)
End If
Next
Slice = arrReturn
Else
Slice = Null
End If
End Function
函数片(aInput、Byval aStart、Byval aEnd)
如果是IsArray(aInput),那么
昏暗的我
暗步
暗棱返回
如果aStart<0,则
aStart=aStart+Ubound(aInput)+1
如果结束
如果aEnd<0,则
aEnd=aEnd+Ubound(输入)+1
如果结束
Redim arrReturn(Abs(aStart-aEnd))
如果aStart>aEnd,则
intStep=-1
其他的
intStep=1
如果结束
对于i=从开始到结束步骤intStep
如果是Isobject(aInput(i)),则
设置arrrurn(Abs(i-aStart))=aInput(i)
其他的
arrrurn(Abs(i-aStart))=aInput(i)
如果结束
下一个
切片=返回
其他的
切片=空
如果结束
端函数
这避免了前面答案中的一些问题:
Null
)IsArray
,而不是对输入进行字符串操作/比较为了完整起见,这可能是一个更好的版本:
Function Slice (aInput, Byval aStart, Byval aEnd)
If IsArray(aInput) Then
Dim i
Dim intStep
Dim arrReturn
If aStart < 0 Then
aStart = aStart + Ubound(aInput) + 1
End If
If aEnd < 0 Then
aEnd = aEnd + Ubound(aInput) + 1
End If
Redim arrReturn(Abs(aStart - aEnd))
If aStart > aEnd Then
intStep = -1
Else
intStep = 1
End If
For i = aStart To aEnd Step intStep
If Isobject(aInput(i)) Then
Set arrReturn(Abs(i-aStart)) = aInput(i)
Else
arrReturn(Abs(i-aStart)) = aInput(i)
End If
Next
Slice = arrReturn
Else
Slice = Null
End If
End Function
函数片(aInput、Byval aStart、Byval aEnd)
如果是IsArray(aInput),那么
昏暗的我
暗步
暗棱返回
如果aStart<0,则
aStart=aStart+Ubound(aInput)+1
如果结束
如果aEnd<0,则
aEnd=aEnd+Ubound(输入)+1
如果结束
Redim arrReturn(Abs(aStart-aEnd))
如果aStart>aEnd,则
intStep=-1
其他的
intStep=1
如果结束
对于i=从开始到结束步骤intStep
如果是Isobject(aInput(i)),则
设置arrrurn(Abs(i-aStart))=aInput(i)
其他的
arrrurn(Abs(i-aStart))=aInput(i)
如果结束
下一个
切片=返回
其他的
切片=空
如果结束
端函数
这避免了前面答案中的一些问题:
N