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, como sucede en otros lenguajes como Java o C++, y no 1.

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();

14 pensamientos en “Javascript: Matrices”

  1. Hola! Gracias por la gran ayuda que se me presta en esta página.

    Me gustaria saber si hay algun componente parecido a pop o shift pero que borre una posicion en concreto del array y que se remodifique todo el contenido..ej:

    en el array tengo:
    numeros[1]=”uno”;numeros[2]=”dos”;numeros[3]=”tres”;
    y quiero borrar el 2 y que me quede:
    numeros[1]=”uno”;numeros[3]=”tres”;

    esto es todo, por el momento….
    Gracias!!!

      1. Pa flipar. Despues de toda la carrera de ingenieria informatica que he hecho, programando hasta videojuegos, ahora me entero que los arrays empiezan por 1 :O

        Voy a retocar mis codigos xD

  2. Borra una posicion dada del array:

    var myArray=[1,2,3,4,5,6,7,8,9,10];
    var newArray=[];

    //delete one item at the 5th index.
    newArray = myArray.splice(5,1);
    document.writeln(myArray); // outputs: 1,2,3,4,5,7,8,9,10
    document.writeln(newArray); // outputs 6

    //truncate the array at the 5th index.
    myArray=[1,2,3,4,5,6,7,8,9,10];
    newArray = myArray.splice(5);
    document.writeln(myArray); // outputs: 1,2,3,4,5
    document.writeln(newArray); // outputs 6,7,8,9,10

    1. Correcto solo de manera parcial, el pide que conserven su posicion, splice corre todos una posicion.

      Por ejemplo, si tenemos

      a[0] = 0;
      a[25] = 23679;
      a[48] = 25;

      si hacemos splie(25,1) hara los iguiente
      a[0] = 0;
      a[47] = 25; Fijaros, corre una posicion. Por lo tanto splice no sirve en este caso.

  3. emms hay un error por ahi, dice que pop elimina el primer elemento de la matriz, siendo que es el ultimo =)
    todo lo demas esta bkn 😉

  4. Bueno alli dice como crear un arreglo, pero una matriz en javascript como es?
    no lo he encontrado.
    y ocupo una matriz por que cada elemento puede tener muchos elementos al mismo tiempo.
    ayuda por favor gracias

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.