Listado completo de tutoriales
Clase Array |
Un vector es una estructura de datos que permite almacenar un CONJUNTO de datos.
Con un único nombre se define un vector y por medio de un subíndice hacemos referencia a cada elemento del mismo (componente).
Ejemplo 1: Crear un vector para almacenar los cinco sueldos de operarios y luego mostrar el total de gastos en sueldos (cada actividad en una función)
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <script> function cargar(sueldos) { for (let f = 0; f < sueldos.length; f++) { let v = prompt('Ingrese sueldo:'); sueldos[f] = parseInt(v); } } function calcularGastos(sueldos) { let total = 0; for (let f = 0; f < sueldos.length; f++) { total = total + sueldos[f]; } document.write('Listado de sueldos<br>'); for (let f = 0; f < sueldos.length; f++) { document.write(sueldos[f] + '<br>'); } document.write('Total de gastos en sueldos:' + total); } let sueldos; sueldos = new Array(5); cargar(sueldos); calcularGastos(sueldos); </script> </body> </html>
Recordemos que el programa comienza a ejecutarse a partir de las líneas que se encuentran fuera de la funciones:
let sueldos; sueldos = new Array(5); cargar(sueldos); calcularGastos(sueldos);
Lo primero, definimos una variable y posteriormente creamos un objeto de la clase Array, indicándole que queremos almacenar 5 valores.
Llamamos a la función cargar enviándole el vector. En la función, a través de un ciclo for recorremos las distintas componentes del vector y almacenamos valores enteros que ingresamos por teclado.
Para conocer el tamaño del vector accedemos a la propiedad length de la clase Array.
Cuando en la función 'cargar' ingresamos los elementos del arreglo, sucede que se modifica la variable 'sueldos' definida en la parte inferior.
En la segunda función sumamos todas las componentes del vector, imprimimos en la página los valores y el total de gastos.
Ejemplo 2: Crear un vector con elementos de tipo string. Almacenar los meses del año. En una función solicitar el ingreso de un número entre 1 y 12. Mostrar a qué mes corresponde y cuántos días tiene dicho mes.
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <script> function mostrarFecha(meses, dias) { let num = parseInt(prompt('Ingrese número de mes:')); document.write('Corresponde al mes:' + meses[num - 1]); document.write('<br>'); document.write('Tiene ' + dias[num - 1] + ' días'); } let meses; meses = new Array(12); meses[0] = 'Enero'; meses[1] = 'Febrero'; meses[2] = 'Marzo'; meses[3] = 'Abril'; meses[4] = 'Mayo'; meses[5] = 'Junio'; meses[6] = 'Julio'; meses[7] = 'Agosto'; meses[8] = 'Septiembre'; meses[9] = 'Octubre'; meses[10] = 'Noviembre'; meses[11] = 'Diciembre'; let dias; dias = new Array(12); dias[0] = 31; dias[1] = 28; dias[2] = 31; dias[3] = 30; dias[4] = 31; dias[5] = 30; dias[6] = 31; dias[7] = 31; dias[8] = 30; dias[9] = 31; dias[10] = 30; dias[11] = 31; mostrarFecha(meses, dias); </script> </body> </html>
En este problema definimos dos vectores, uno para almacenar los meses y otro los días. Decimos que se trata de vectores paralelos porque en la componente cero del vector meses almacenamos el string 'Enero' y en el vector dias, la cantidad de días del mes de enero.
Es importante notar que cuando imprimimos, disponemos como subíndice el valor ingresado menos 1, esto debido a que normalmente el operador de nuestro programa carga un valor comprendido entre 1 y 12. Recordar que los vectores comienzan a numerarse a partir de la componente cero.
document.write('Corresponde al mes:'+meses[num-1]);
Es común utilizar una sintaxis más concisa para inicializar los dos vectores:
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <script> function mostrarFecha(meses, dias) { let num = parseInt(prompt('Ingrese número de mes:')); document.write('Corresponde al mes:' + meses[num - 1]); document.write('<br>'); document.write('Tiene ' + dias[num - 1] + ' días'); } let meses = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre']; let dias = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; mostrarFecha(meses, dias); </script> </body> </html>
Hay mucho por ver de la clase Array más adelante, por ejemplo:
Podemos definir arreglos con elementos de distinto tipo en cada componente:
let persona = ['Diego Martinez', 50, 78.50]; document.write(persona[0] + ' tiene una edad de ' + persona[1] + ' y un peso de ' + persona[2])
Por pantalla aparece:
Diego Martinez tiene una edad de 50 y un peso de 78.5
Podemos definir un vector sin indicar el tamaño del mismo y luego cargar en cualquier posición:
let ingresos = []; ingresos[3] = 1000; ingresos[5] = 5000; for (let f = 0; f <= 6; f++) { document.write(ingresos[f] + '<br>') }
Las componentes que no han sido inicializadas retornan el valor undefined.
undefined undefined undefined 1000 undefined 5000 undefined
Podemos definir componentes del arreglo que sean otro arreglo (crear estructuras de datos tan complejas como necesitemos):
let matrizIdentidad = [ [1, 0, 0], [0, 1, 0], [0, 0, 1] ]; for (let f = 0; f < 3; f++) { for (let c = 0; c < 3; c++) { document.write(matrizIdentidad[f][c] + ' '); } document.write('<br>'); }
Luego tenemos como resultado en la pantalla:
1 0 0 0 1 0 0 0 1
Luego veremos que tenemos otras muchísimas funcionalidades con esta estructura de datos.