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

Comentarios
  1. Luisete

    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!!!

    Responder

  2. noir_angel

    En java los arreglos tambien empiezan en el 0

    Responder

  3. Kayulla

    Quiero saber como vaciar,borrar el contenido de un array para poder reutilizarlo, lo necesito para poder ejecutar un ajax

    Responder

  4. Jk

    Ni en java ni en C++ los arrays empiezan por 0 !!!

    Responder

    • Zootropo

      Pues claro que sí. ¿Qué chorrada me estás contando? No debes haber trabajado mucho con ninguno de los dos, ¿no? 😯

      Responder

      • Noe

        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

        Responder

    • Death_doll

      jajaja pues donde aprendiste a programar.. en java,c,c++ y en otros lenguajes el indice de los array empieza en 0 xD

      Responder

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

    Responder

    • awef

      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.

      Responder

  6. Vimes

    Te felicito, no solo por la explicación, sino por haber usado a los personajes del mundodisco como ejemplo!

    Responder

  7. alvaro

    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 😉

    Responder

  8. jhon

    me parece muy importante esta opcion ya que con esto aprender mucho

    Responder

  9. Rosalba

    Alvaro no entiendo pop elimina el ultimo? o el primer elemento? espero su respuesta

    Responder

  10. matrix

    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

    Responder

Deja un comentario