Guía JavaScript 1.5:Objetos base predefinidos:Objeto Array
De MDC
Tabla de contenidos |
[editar] Objeto Array
JavaScript no posee un tipo de dato explícito para arreglos. Sin embargo, puede utilizar el objeto predefinido Array y sus métodos para trabajar con arreglos en sus aplicaciones. El objeto Array posee métodos para la manipulación de arreglos en varias maneras, tales como la unión, reversamiento y ordenamiento de arreglos. Este objeto posee una propiedad para determinar la longitud del arreglo y otras propiedades para usarse con expresiones regulares.
Un arreglo es un conjunto ordenado de valores que se refieren con un nombre y un índice. Por ejemplo podría tener un arreglo llamado empleado que contiene nombres de empleados indexados por su número de empleado. De tal forma que empleado[1] sería el empleado número uno, empleado[2] empleado número dos y así sucesivamente.
[editar] Creación de un Arreglo
Para crear un objeto Array:
1. Nombre_del_Objeto_Array = new Array(elemento0, elemento1, ..., elementoN) 2. Nombre_del_Objeto_Array = new Array(Longitud_del_arreglo)
Nombre_del_Objeto_Array es tanto un nombre de un nuevo objeto o una propiedad de un objeto existente. Cuando utilice las propiedades y métodos de Array , Nombre_del_Objeto_Array es tanto el nombre de un objeto Array existente o una propiedad de un objeto existente.
elemento0, elemento1, ..., elementoN es una lista de valores para los elementos del arreglo. Cuando esta forma es especificada, el arreglo es iniciado con los valores especificados como sus elementos y la propiedad de longitud del arreglo es configurada por el número de argumentos.
Longitud_del_arreglo es la longitud inicial del arreglo. El código siguiente crea un arreglo de cinco elementos:
Método_de_facturación = new Array(5)
Los arreglos literales tambien son objetos Array; por ejemplo, el siguiente literal es un objeto Array. Véase Arreglos literales para detalles de los arreglos literales.
coffees = ["French Roast", "Columbian", "Kona"]
[editar] Llenado de un Arreglo
Puede llenar un arreglo mediane la asignación de valores a sus elementos. Por ejemplo:
empleado[1] = "Casey Jones" empleado[2] = "Phil Lesh" empleado[3] = "August West"
YTambién puede llenar un arreglo cuand lo crea:
miArreglo = new Array("Hola", miVariable, 3.14159)
[editar] Referenciando a los elementos de un Arreglo
Puede referirse a los elementos de un arreglo mediante el uso de los números ordinales de los elementos. Por ejemplo, supóngase que define el siguiente arreglo:
miArreglo = new Array("Viento","Lluvia","Fuego")
Puede entonces referirse al primer elemento del arreglo como miArreglo[0] y al segundo elemento del arreglo como miArreglo[1].
El índice de los elementos comienza con cero (0), pero la longitud de un arreglo (por ejemplo, miArreglo.length) refleja el número de elementos en un arreglo.
[editar] Métodos de Arreglos
El objeto Array tiene los siguientes métodos:
-
concatune dos arreglos y retorna un nuevo arreglo.
miArreglo = new Array("1","2","3")
miArreglo = miArreglo.concat("a", "b", "c"); // miArreglo ahora tiene ["1", "2", "3", "a", "b", "c"]
-
join(deliminator = ",")une todos los elementos de un arreglo en una cadena.
miArreglo = new Array("Viento","Lluvia","Fuego")
lista = miArreglo.join(" - "); // la lista tiene "Viento - Lluvia - Fuego"
-
popremueve el último elemento de un arreglo y retorna este elemento.
miArreglo = new Array("1", "2", "3");
último=miArreglo.pop(); // miArreglo ahora tiene ["1", "2"], último = "3"
-
pushañade uno o más elementos al final de un arreglo y retorna el último elemento añadido.
miArreglo = new Array("1", "2");
miArreglo.push("3"); // miArreglo ahora tiene ["1", "2", "3"]
-
reverseinvierte el orden de los elementos de un arreglo: el primer elemento del arreglo se convierte en el último y el último se convierte en el primero.
miArreglo = new Array ("1", "2", "3");
miArreglo.reverse(); // invierte el arreglo tal que miArreglo = [ "3", "2", "1" ]
-
shiftremueve el primer elemento de un arreglo y retorna este elemento.
miArreglo = new Array ("1", "2", "3");
primero=miArreglo.shift(); // miArreglo ahora tiene ["2", "3"], primero es "1"
-
slice (índice_inicial, índice_hasta_sin_incluir)extrae una seccción de un arreglo y retorna un nuevo arreglo.
miArreglo = new Array ("a", "b", "c", "d", "e");
miArreglo = miArreglo.slice(1,4); //comienza en el índice 1 y extrae todos los elementos hasta el índice 4, retornando [ "b", "c", "d" ]
-
splice(índice, contdor_para_remover, añade_elemento1, añade_elemento2, ...)añade y/o remueve elementos de un arreglo.
miArreglo = new Array ("1", "2", "3", "4", "5");
miArreglo.splice(1,3,"a","b","c", "d"); // miArreglo ahora tiene ["1", "a", "b", "c", "d", "5"]
// este código comienza en el índice uno (o donde estaba el "2"), remueve 3 elementos de allí y luego inserta todos los elementos consecutivamente en su lugar.
-
sortordena los elementos de un arreglo.
miArreglo = new Array("Viento","Lluvia","Fuego")
miArreglo.sort(); // ordena el arreglo tal que miArreglo = [ "Fuego", "Lluvia", "Viento" ]
sort también puede invocar a una función de respaldo para determnar como el contenido del arreglo es ordenado. La función compara dos valores y retorna uno de tres valores:
- sí a es menor que b para el sistema de ordenamiento, retorna -1 (o cualquier número negativo)
- sí a es mayor que b para el sistema de ordenamiento, retorna 1 (o cualquier número positivo)
- sí a y b son considerados equivalentes, retorna 0.
Por ejemplo, lo siguiente se soportará por la última letra de un arreglo:
var FuncionOrdena = function(a,b){
if (a[a.length - 1] < b[b.length - 1]) return -1;
if (a[a.length - 1] > b[b.length - 1]) return 1;
if (a[a.length - 1] == b[b.length - 1]) return 0;
}
miArreglo.sort(FuncionOrdena); // ordena el arrego de tal forma que miArreglo = ["Wind","Fire","Rain"]
-
unshiftadds one or more elements to the front of an array and returns the new length of the array.
[editar] Arreglos de Dos-Dimensiones
El código siguiente crea un arreglo de dos dimensiones.
a = new Array(4)
for (i=0; i < 4; i++) {
a[i] = new Array(4)
for (j=0; j < 4; j++) {
a[i][j] = "["+i+","+j+"]"
}
}
Este ejemplo crea un arreglo con las siguentes filas:
Fila 0:[0,0][0,1][0,2][0,3] Fila 1:[1,0][1,1][1,2][1,3] Fila 2:[2,0][2,1][2,2][2,3] Fila 3:[3,0][3,1][3,2][3,3]
[editar] Arreglos y Expresiones Regulares
Cuando un arreglo es el resultado de una coincidencia entre una expresión regular y una cadena, el arreglo retorna las propiedades y los elementos que provee la información acerca de la coincidencia. Un arreglo es el valor de retorno de la ejecución de una expresión regular RegExp.exec, String.match y String.split. Para información acerca del uso de arreglos y expresiones regulares, véase el Capítulo 4, Expresiones Regulares.