Novedades ES6

Clase Array de Javascript

Los arrays son objetos similares a una lista cuyo prototipo proporciona métodos para efectuar operaciones de recorrido y de mutación. Tanto la longitud como el tipo de los elementos de un array son variables. Dado que la longitud de un array puede cambiar en cualquier momento, y los datos se pueden almacenar en ubicaciones no contiguas, no hay garantía de que los arrays de JavaScript sean densos; esto depende de cómo el programador elija usarlos. En general estas características son cómodas, pero si, en su caso particular, no resultan deseables, puede considerar el uso de arrays con tipo.

¿Qué es una matriz o Array?

Una matriz es una variable especial, que puede contener más de un valor a la vez.

Si tiene una lista de elementos (una lista de nombres de automóviles, por ejemplo), almacenar los automóviles en variables individuales podría verse así:

var car1 = "Saab";
var car2 = "Volvo";
var car3 = "BMW";

Sin embargo, ¿qué pasa si desea recorrer los autos y encontrar uno específico? ¿Y si no tuvieras 3 coches, sino 300?

¡La solución es una matriz o array!

Una matriz puede contener muchos valores con un solo nombre y puede acceder a los valores haciendo referencia a un número de índice.

Crear una matriz o array

El uso de un literal de matriz es la forma más sencilla de crear una matriz de JavaScript.

Sintaxis:
var array_name = [item1, item2, ...];

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)
{
var f;
for(f=0;f<sueldos.length;f++)
{
var v;
v=prompt('Ingrese sueldo:','');
sueldos[f]=parseInt(v);
}
}

function calcularGastos(sueldos)
{
var total=0;
var f;
for(f=0;f<sueldos.length;f++)
{
total=total+sueldos[f];
}
document.write('Listado de sueldos<br>');
for(f=0;f<sueldos.length;f++)
{
document.write(sueldos[f]+'<br>');
}
document.write('Total de gastos en sueldos:'+total);
}

var 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:

var 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.

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)
{
var num;
num=prompt('Ingrese número de mes:','');
num=parseInt(num);
document.write('Corresponde al mes:'+meses[num-1]);
document.write('<br>');
document.write('Tiene '+dias[num-1]+' días');
}

var 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';

var 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]);