informaticaPC

Tutorial de JavaScript

Ordenar un array, extraer elementos...


Regístrate

Tus datos no serán compartidos, solo nosotros te enviaremos información y novedades

Ordenar un array

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

Invertir el orden de los elementos

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.

Combinar los elementos de varios arrays

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

Extraer parte de un array

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

Obtener una cadena de texto con los elementos de un array

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 />" );
Primera página Anterior Siguiente Última página
Usamos cookies para ofrecerte una experiencia mejorada, el continuar navegando supone que aceptas su uso