martes, junio 12, 2012

Tutorial de desarrollo web, Parte XXXVI

¡Última entrega del tutorial escrita desde Alemana (al menos de momento)! Y aqui seguimos, viendo qué podemos hacer con los arrays, esos pequeños desconocidos. La semana pasada estuvimos viendo unas cuantas funciones que podíamos usar con los arrays. Hoy terminaremos de ver otras tantas funciones.
  • La primera de las funciones de esta semana será la función "concat". Esta función une (o "concatena") dos o más arrays en uno sólo. Su uso es un tanto peculiar ya que se necesitan como mínimo dos arrays para usarlo, pero sólo uno irá antes del nombre de la función, mientras que el otro irá entre los paréntesis. Por ejemplo:
  • var primerVector = new Array(5, 3, 2);
  • var segundoVector = new Array(2, 1);
  • var vectorConcat = primerVector.concat(segundoVector);
  • Ahora "vectorConcat" tendría todos los valores de "primerVector" seguidos por los valores de "segundoVector". En caso de querer concatenar más vectores sólo nos hace falta separarlos con comas entre los paréntesis. Por ejemplo:
  • var vectorConcat = primerVector.concat(segundoVector, tercerVector);
  • Bastante simple, creo yo.
  • La siguiente función es bastante parecida al toString que vimos la semana pasada, sólo que en esta ocasión tendremos algo de control sobre la String resultante. Esta función es la función "join" que devuelve una String con todos los valores del array separados por comas, aunque podemos cambiar esto introduciéndole un valor como parámetro (o sea, entre los paréntesis). Por ejemplo:
  • var vectorJoin = primerVector.join("-");
  • Devolvería:
  • 5-3-2
  • Simple, también. Del mismo modo, también podemos usar la función "valueOf", que haría exactamente lo mismo que el toString.
  • El método "slice" nos devuelve la parte del array que hayamos seleccionado, ya que como parámetro le pasaremos las dos posiciones entre las que queremos que saque el valor (incluyendo el primero, pero no el último). Por ejemplo:
  • var vectorSlice = vectorConcat.slice(1, 3); // "vectorConcat" contiene "5,3,2,2,1".
  • Ahora "vectorSlice" contendría: "3,2" ("3" es la posición 1, la cual está incluída, pero el segundo "2", la posición 3, no es incluído).
  • Una función que nos puede resultar bastante interesante es "splice", la cual nos ayudará tanto a añadir como a borrar elementos de un array. La función tendrá, básicamente, la siguiente sintaxis:
  • nombreArray.splice(posicion, borrados, [elementosAAñadir]);
  • En esa línea, "posicion" sería a partir de que número insertaremos o borraremos filas. Recordemos que los arrays comienzan en 0 así que si le decimos que borre un elemento a partir de la posición 2, borrará el tercer elemento del array. En segundo lugar, "borrados" es el número de elementos que se borrarán. Y, finalmente, "elementosAAñadir" es un parámetro opcional (por eso está puesto entre corchetes) e indica los archivos que se introducirán en esa posición. De este modo, podemos poner:
  • nuevoVector.splice(2, 1); // Borra el tercer elemento.
  • nuevoVector.splice(1, 0, "a"); // No borra ningún elemento pero inserta una "a" en la posición 1, rodando los siguientes elementos si existen.
  • nuevVector.splice(3, 2, "a", "b", "c"); // Borra los elementos de las posiciones tres y cuatro y, además, añade "a" a la posición 3, "b" a la posición 4 y "c" a la posición 5, rodando los elementos restantes.
  • Y nuestra última función de la semana es "sort", una función que sirve para ordenar un array. Simplemente poniendo array.sort() el array será ordenado alfabéticamente, pero esto dará un problema: al igual que "ab" va antes de "b", "12" irá antes de "2", ya que el navegador contará cada uno de los caracteres individualmente y no en grupo, como debería hacer con los números. Para solucionar esto, si tenemos un array de números que queremos que nos ordene correctamente, deberemos introducir una función en el sort, de esta manera:
  • array.sort(function(a,b){return a-b})
    Las funciones es algo que veremos en próximas entregas, de momento simplemente copiar ese código (salvo por el nombre del array) cada vez que necesitéis usarlo.
Y así terminamos con las funciones de los arrays, un tipo de variable que, os aseguro, os cansaréis de ver. Desgraciadamente, pocas ideas se me ocurren para ejercicios con estas funciones, así que esta semana será libre, aunque os recomendaría intentar implementar estos métodos en los ejercicios de la semana pasada de alguna manera (seguro que se os ocurre algún modo). ¡Hasta la semana que viene, que ya estaré en España!

No hay comentarios: