|
dim matriz (10) for i=0 to 10 |
Este ejemplo escribiría en la página las posiciones del array, que contienen
variables numéricas que corresponden de multiplicar su índice por 100.
Si se desea, se puede
ver el efecto resultante en una página web.
Arrays multidimensionales en VBScript
Se pueden construir matrices multidimensionales, es decir, que nos permitan crear matrices de varias coordenadas. Para trabajar con ellos se utiliza una coma que separa los dos índices. Por ejemplo podemos definir una matriz de 8x8 de esta manera.
dim miArray2Dimensiones (7,7)
Como el array es de 8 casillas, utilizamos un 7 y sus posiciones serán las 8 que van desde el 0 al 7. Para escribir y leer del Array podemos utilizar la coma de manera similara a como se declara. Por ejemplo, para meter datos en la posición 0,2 haríamos lo siguiente:
miArray2Dimensiones (0,2) = "texto posicion 0,2"
Redimensionar arrays
Podemos declarar también arrays que cambien el número de casillas que tienen según se necesite en tiempo de ejecución. Este tipo de arrays redimensionables se llama array dinámico. Para crear este tipo de arrays podemos utilizar la sentencia dim (como creábamos los anteriores) o la sentencia redim, con la particularidad que no le colocamos ningún valor entre paréntesis donde antes indicábamos el número de casillas del array.
dim mi_array()
redim mi_otro_array()
Cuando usamos arrays dinámicos podemos utilizar la sentencia redim para indicar el número de dimensiones y la cantidad de casillas de cada dimensión.
Con esta sentencia estamos indicando que mi_array debe tener el tamaño 10. Casillas desde la 0 hasta la 10.
redim mi_array(10)
Si indicamos la clave "preserve" estamos asegurándonos que el contenido de las casillas que había previamente en el array se mantiene.
redim preserve mi_array(20)
Por último, si en cualquier momento reducimos el número de casillas perderemos lo que pudiera haber guardado en las casillas que se han eliminado.
En el siguiente ejemplo creamos un array dinámico y lo redimensionamos inicialmente a tamaño 3. Lo rellenamos y mostramos sus distintos valores. Posteriormente lo redimensionamos otra vez para que llegue hasta la posición 7, guardando los valores antiguos. Para acabar rellenamos las casillas que hemos creado nuevas y mostramos todos los valores del array.
dim frutas()
redim frutas(3)
frutas(0) = "Pera"
frutas(1) = "Uva"
frutas(2) = "Manzana"
frutas(3) = "Melón"
for each fruta in frutas
document.write fruta & "<br>"
next
redim preserve frutas(7)
frutas(4) = "Sandía"
frutas(5) = "Naranja"
frutas(6) = "Plátano"
frutas(7) = "Mandarina"
for each fruta in frutas
document.write fruta & "<br>"
next
El ejemplo se puede ver en funcionamiento en una página nueva.
|
Nota: Los arrays de más de una dimensión también se pueden redimensionar, pero sólo se puede alterar la última dimensión.
Por ejemplo, en un array de dos dimensiones miarray(2,4), se podría redimensionar la segunda dimensión redim miarray(2,8). O en un array de 3 dimensiones, donde también podríamos cambiar tan sólo la última dimensión. Un ejemplo de código que hace esto es: dim datos_prueba() redim datos_prueba(1,0) datos_prueba(0,0)=12 datos_prueba(1,0)="hola!" redim preserve datos_prueba(1,1) datos_prueba(0,1)=133 datos_prueba(1,1)="segunda casilla" for i=0 to ubound(datos_prueba) document.write datos_prueba(0,i) & "-" & datos_prueba(1,i) & "<br>" next |
Obtener el número de casillas de un array
Uno de los datos típicos que necesitamos extraer de un array es su número de posiciones, útil por ejemplo para hacer un recorrido a un array, desde la primera hasta la última casilla. Para ello utilizamos la función uBound() de VBScript.
uBound() recibe el array del que queremos obtener su número de posiciones y devuelve la posición más alta del array. Por ejemplo.
dim ciudades(5)
document.write ubound (ciudades)
Escribiría en la página el número de la casilla más alta del array ciudades, en este caso 5.
Además, por si algún día la necesitamos, también tenemos a nuestra disposición la función lBound(), que devuelve el número de la posición con índice menor del array.
document.write lbound (ciudades)
La última línea sobre nuestro array de ciudades definido anteriormente escribiría un 0 en la página web, puesto que el array comienza en la posición cero.