¿No sabes por dónde empezar? Ayúdanos normalizando artículos.
¿Tienes experiencia? Crea alguno de estos artículos de actualidad.
Arreglos en Javascript
|
Un arreglo es un conjunto de datos o una estructura de datos no homogéneos que se encuentran ubicados en forma consecutiva en la memoria RAM.
Sumario
[ocultar]Definición
En javascript un arreglo es una colección ordenada de elementos no homogéneos, cada elemento puede ser de un tipo de dato diferente. En javascript los arreglos empiezan con el subíndice 0. Ejemplo: La siguiente sentencia genera un arreglo con 4 elementos de distinto tipo var b = new Array(2.5, false, 6, "Hola");
Arreglos simples
Los arrays simples, también llamados "tablas" o "matrices", son el método más común y simple de almacenar datos. Técnicamente, un Array es un objeto intrínseco de JavaScript. Admite datos del tipo cadenas, números, objetos, arrays, true, false, null.
Definiendo Arreglos Simples
método 1º: definiendo y poblando simultáneamente
var tabla = new Array(25,35,12,34);
var tabla = [25,35,12,34];
método 2º: definiendo primero, poblando después cualquiera de las siguientes es válida en unos casos se expecifica el número de elementos en otros no
var tabla = new Array();
var tabla = new Array(7);
var tabla = [];
var tabla = [7];
poblando el arreglo
tabla[0] = "lunes";
tabla[1] = "martes";
tabla[2] = "miércoles";
tabla[3] = "jueves";
tabla[4] = "viernes";
tabla[5] = "sábado";
tabla[6] = "domingo";
Propiedades y Métodos de los arreglos
Todo objeto de JavaScript, tanto los intrínsecos como los definidos por el programador, tiene propiedades y/o métodos. Los del objeto Array que nos interesan son:
Propiedad:
length: devuelve al número de elementos del array;
Uso: tabla.length
Métodos:
concat
Definición: este método añade al final de un array los elemementos de otro array.
Uso: var a = [] , b = [] , c = []; c = a.concat(b);
join
Definición: este método crea un texto con los elementos del array separados por un carácter que se especifique.
Uso: var a = []; var texto = a.join("#");
Ejemplo:
var a = [1,2,3];
var texto = a.join("-");
// devuelve texto = "1-2-3"
reverse
Definición: este método genera un nuevo array transponiendo los elementos del array al que le aplicamos dicho método.
Uso:
var a = [];
var b = a.reverse();
slice
Definición: devuelve al fragmento del array comprendido entre los elementos cuyas posicionespasemos como parámetros (inicial, final); si se utiliza un solo parámetro es desde esa posicion hasta el final.
Uso: var a =[]; a.slice(inicial[opcional:,final]);
Ejemplo:
var $tabla = ["lunes","martes","miercoles","jueves"];
var $aux = $tabla.slice(0,2);
print($aux.join("="));
//devuelve "lunes=martes"
var $aux2 = $tabla.slice(2);
print($aux2.join("="));
//devuelve "miercoles=jueves"
sort
Definición: ordena los elementos de un array.
Uso: var a = []; a.sort();
Ejemplo:
var $tabla = ["lunes","martes","miercoles","jueves"];
print($tabla.sort());
// devuelve "jueves,lunes,martes,miercoles"
Accediendo a elementos
Accediendo a elementos individuales del array:
nombre_array[índice] (índice = 0,1,...,n-1) (n = nombre_array.length)
Accediendo a todos los elementos del array:
Método 1: bucle for
Ejemplo: for(i = 1; i< $tabla.length; i++){ ... }
Método 2: bucle for...in
var $tabla = ["lunes","martes","miercoles","jueves"];
for (indice in $tabla){
print (indice+ "=>" + $tabla[indice]);
}
/*devuelve:
0=>lunes
1=>martes
2=>miercoles
3=>jueves
- /
Arreglos múltiples
Definición
Un array múltiple es un array simple cuyos elementos son, a su vez arrays de la misma dimensión. En consecuencia, no existen propiamente hablando arrays múltiples. Un array múltiple de dimensión mxn es un array simple de m elementos, siendo cada uno de esos elementos un array de n elementos.
Ejemplos
Ejemplo 1
// definiendo un array $tabla 2 x 5
var matriz = new Array();
matriz[0] = new Array(1,2,3,4,5);
matriz[1] = new Array(6,7,8,9,0);
print (matriz[1].join("%"));
// devuelve "6%7%8%9%0"
print (matriz[0][2]);
// devuelve "3"
Ejemplo 2
// array $tabla 2 x 3
var $tabla = [[1,2,3],[3,4,5]];
for ($indice in $tabla){
print ($indice+ "=>" + $tabla[$indice]);
}
/* devuelve:
0=>1,2,3
1=>3,4,5
- /
Ejemplo 3
// array $tabla 2 x 3
var $tabla = [[1,2,3],[4,5,6]];
for ($i in $tabla){
for ($j in $tabla[$i]){
print ("(" +$i + "," + $j+ ") = " + $tabla[$i][$j]);
}
}
/* devuelve:
(0,0) = 1
(0,1) = 2
(0,2) = 3
(1,0) = 4
(1,1) = 5
(1,2) = 6
- /
Arreglos asociativos
Un array asociativo es un array cuyos índices no son numéricos. Más concretamente, los índices son cadenas. En Perl o PHP también se conocen como hash. En estos arrays usamos "{}" (llaves) en vez de "[]" (corchetes) a la hora de definirlos.
Ejemplos
Ejemplo 1
Definición de un array asociativo
var $hash = {"DNI":"123","Nombre":"José","Apellidos":"López"};
print ($hash["Nombre"]);
//devuelve "José"
//devuelve lo mismo si usamos la notación dot
print($hash.Nombre)
Ejemplo 2
// otro método:
var $hash = {};
$hash["DNI"]="123";
$hash["Nombre"]="José";
$hash["Apellidos"]="López";
print ($hash["Nombre"]);
// devuelve "José"
Ejemplo 3
// y otro:
var $hash = new Array();
$hash["DNI"]="123";
$hash["Nombre"]="José";
$hash["Apellidos"]="López";
print ($hash["Nombre"]);
// devuelve "José"
Ejemplo 4
var $tabla = {"numeros":[1,2,3],"palabras":["Jose","Miguel"]};
for ($i in $tabla){
for ($j in $tabla[$i]){
print ("(" +$i + "," + $j+ ") => " + $tabla[$i][$j]);
}
}
/* devuelve:
(numeros,0) => 1
(numeros,1) => 2
(numeros,2) => 3
(palabras,0) => Jose
(palabras,1) => Miguel
- /
Objetos
No es su funcionalidad principal pero podríamos usar objetos para almacenar datos. Se trataría de objetos con propiedades pero no con métodos.
Ejemplos
Ejemplo 1
function MyObjt(arr1,arr2){
this.numeros = arr1;
this.palabras = arr2;
}
var _arr1 = [1,2,3];
var _arr2 = ["Jose","Miguel"];
var $hash = new MyObjt(_arr1,_arr2);
print ($hash["numeros"]);
print ($hash["numeros"][0]);
print ($hash.palabras);
print ($hash.palabras[1])
/* devuelve:
1,2,3
1
Jose,Miguel
Miguel
- /
Ejemplo 2.
function MyObjt(arr1,arr2){
this.numeros = arr1;
this.palabras = arr2;
}
var _arr1 = [1,2,3];
var _arr2 = ["Jose","Miguel"];
var $hash = new MyObjt(_arr1,_arr2);
for ($i in $hash){
for ($j in $hash[$i]){
print ("(" +$i + "," + $j+ ") => " + $hash[$i][$j]);
}
}
/* devuelve:
(numeros,0) => 1
(numeros,1) => 2
(numeros,2) => 3
(palabras,0) => Jose
(palabras,1) => Miguel
- /
Conclusiones
La comparación entre este segundo ejemplo y el ejemplo cuarto del apartado anterior nos muestra que definir un objeto y definir un array asociativo no son más que dos maneras de realizar el mismo proceso. En Javascript todos los arreglos son objetos.
Fuente
Drunayle Laugart Guerra. “Arreglos”. 2011. Joven Club de Computación y Electrónica, Santiago XVIII.