Si necesitamos ordenar un array que contiene cadenas de texto de forma alfabética y ascendente, usaremos el método sort():
var aDias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"];
aDias.sort();
// El array queda: "Domingo", "Jueves", "Lunes", "Martes", "Miércoles", "Sábado", "Viernes"
alert( aDias );
Para que funcione correctamente con números hay que crear una función como la que mostramos a continuación, en la que se ordenan ascendentemente:
function ordenarNumeros(valor1, valor2) {
return valor1 - valor2;
}
var aNumeros = [10, 11, 8, 103, 99, 54];
aNumeros.sort(ordenarNumeros);
// El array queda: 8, 10, 11, 54, 99, 103
alert( aNumeros );
Para ordenarlos descendentemente hay que realizar una pequeña modificación en la función:
function ordenarNumeros(valor1, valor2) {
return valor2 - valor1;
}
var aNumeros = [10, 11, 8, 103, 99, 54];
aNumeros.sort(ordenarNumeros);
// El array queda: 103, 99, 54, 11, 10, 8
alert( aNumeros );
Si necesitamos invertir el orden en que se hallan los elementos de un array en JavaScript usaremos el método reverse():
var aDias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"];
aDias.reverse();
// El array queda: "Domingo", "Sábado", "Viernes", "Jueves", "Miércoles", "Martes", "Lunes"
alert( aDias );
Este método no realiza ninguna ordenación, tan sólo invierte el orden en que esté cada elemento, moviendo el primero elemento a la última posición, el segundo a la penúltima, y así sucesivamente.
El método concat() es usado para combinar los elementos de varios arrays en otro. Entre sus paréntesis escribiremos los nombres de los arrays que deseamos unir:
var aDias1 = ["Lunes", "Martes", "Miércoles"];
var aDias2 = ["Jueves", "Viernes", "Sábado", "Domingo"];
var aDias = aDias1.concat( aDias2 );
// El array queda: "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"
alert( aDias );
Explicación: en el array 'aDias' guardamos los elementos de los arrays 'aDias1' y 'aDias2'.
A continuación te mostramos otro ejemplo en el que combinamos tres arrays:
var aDias1 = ["Lunes", "Martes", "Miércoles"];
var aDias2 = ["Jueves", "Viernes"];
var aDias3 = ["Sábado", "Domingo"];
var aDias = aDias1.concat( aDias2, aDias3 );
// El array queda: "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"
alert( aDias );
Con el método slice() tenemos la posibilidad de extraer parte de un array (sin modificarlo) y guardar los elementos en otro. En el primer parámetro se indica a partir de qué posición se extraerán los elementos, y en el segundo cuántos elementos se extraerán (si se omite este parámetro se extraerán el resto de elementos hasta el final):
var aNombres1 = ["PEPE", "ALFREDO", "ALBERTO", "CARMEN", "MARÍA", "TERESA"];
var aNombres2 = aNombres1.slice(0,3);
// Devuelve: "PEPE", "ALFREDO", "ALBERTO"
alert( aNombres2 );
Para obtener una cadena de texto con el contenido de los elementos de un array usaremos los métodos toString() y join().
Con toString() se devuelven los elementos separados por coma, mientras que con join() podemos indicar el carácter separador, tal y como podemos ver en el siguiente ejemplo:
var aNombres1 = ["PEPE", "ALFREDO", "ALBERTO", "CARMEN", "MARÍA", "TERESA"];
var aNombres2 = ["PEPE", "ALFREDO", "ALBERTO", "CARMEN", "MARÍA", "TERESA"];
var nombres1 = aNombres1.toString();
var nombres2 = aNombres2.join( " - " );
// El array queda: "PEPE,ALFREDO,ALBERTO,CARMEN,MARÍA,TERESA"
document.write( nombres1 + "<br />" );
// El array queda: "PEPE - ALFREDO - ALBERTO - CARMEN - MARÍA - TERESA"
document.write( nombres2 + "<br />" );