Zootropo

Diario del mundo geek.

sábado, julio 24, 2004

Javascript: Matrices

Un array o matriz es una estructura de datos que almacena una serie de elementos (que no tienen porque ser del mismo tipo, en Java por ejemplo si) a los que se accede atraves de un número que indica su posición en la matriz que se conoce con el nombre de índice.

Las matrices en Javascript son objetos de tipo Array, por lo tanto se crean usando el constructor Array():

//creamos una matriz vacia
a = new Array();
//también podemos crear una matriz vacia pero reservar espacio para n elementos
b = new Array(10);
//o especificar sus elementos a la hora de crear el array
personajes = new Array("Ricenwind","Mort","Tata Ogg");

Además las matrices no son estáticas, una vez creadas podemos cambiar los elementos que contiene así como acceder a los elementos de cualquier posición, ambas cosas gracias al operador [].

/*Obtenemos el valor del primer elemento de la matriz y lo metemos en la variable protagonista*/
var protagonista = personajes[0];
/*Para modificar o añadir valores se usa también []*/
personajes[3] = "La Muerte";

Es importante darse cuenta de que el primer elemento de la matriz tiene como índice 0, no 1, como sucede en Java o C++.

Ahora, recordando lo que vimos sobre los objetos y sabiendo que las matrices son objetos, es razonable suponer que el objeto Array tendrá propiedades y métodos que nos ayuden a la hora de programar. Vamos a ver los mas interesantes.

Propiedades

  • length: contiene el tamaño de la matriz.
    /*Tenemos 4 elementos en personajes, por lo tanto el tamaño de la matriz es 4*/
    tamanyo = personajes.length;

Métodos

  • concat: devuelve el resultado de concatenar las matrices que se pasan como argumento a la matriz sobre el que se llama, sin afectar a ninguna de las matrices involucradas.
    /*ahora tendriamos la matriz que tiene como elementos los elementos de personajes dos veces*/
    var personajes = personajes.concat(personajes);
  • pop: retira el el primer elemento de la matriz y devuelve este como valor de retorno.
    /*ultimo contendria "La Muerte" y personajes pasaria a ser la matriz con los elementos que tenía antes menos el último elemento*/
    var ultimo = personajes.pop();
  • push: añade los elementos que se pasan como argumento a la función a la matriz.
    /*Ahora personajes contiene al final de la matriz los numeros 1,2 y 3*/
    personajes.push(1,2,3);
  • shift: similar a pop, pero en este caso elimina y devuelve el primer elemento de la matriz, no el último.
  • toString: devuelve la representación de la matriz como una cadena de texto.
    /*cadena contendría "Rincewind, Mort, Tata Ogg, La Muerte, Rincewind, Mort, Tata Ogg, 1, 2, 3"*/
    var cadena = personajes.toString();