Каков наилучший способ перебора массива в Classic Asp VBScript?

Есть веская причина НЕ ИСПОЛЬЗОВАТЬ For i = LBound(arr) To UBound(arr)

dim arr(10) выделяет bytearray одиннадцать элементов массива, от swift-array 0 до 10 (при условии, что jsonarray база опций VB6 по умолчанию).

Многие asp программисты VB6 предполагают, что asp-classic массив основан на единице, и arrays никогда не используют выделенные character-arrays arr(0). Мы можем удалить потенциальный static-array источник ошибки, используя swift-array For i = 1 To UBound(arr) или For i = 0 To UBound(arr), потому что тогда будет arrays ясно, используется ли arr(0).

For each создает static-array копию каждого элемента массива, а swift-array не указателя.

У этого есть asp две проблемы.

  1. Когда мы пытаемся vbs присвоить значение элементу asp-classic массива, это не отражается arrays на оригинале. Этот код присваивает string-array значение 47 переменной i, но arrays не влияет на элементы arr.

    arr = Array(3,4,8)
    for each i in arr
         i = 47
    next i
    Response.Write arr(0) '- returns 3, not 47
  2. Мы asp не знаем индекса элемента vbscript массива в for each, и нам не гарантируется asp-classic последовательность элементов array (хотя она вроде бы в порядке).

arrays

asp-classic

vbscript

2022-10-13T17:57:31+00:00