Arreglos en Javascript


Arreglos en Javascript
Información sobre la plantilla
Concepto:Grupo o colección finita, no homogénea y ordenada de elementos.


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.

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.