Diferencia entre revisiones de «Arreglos en Javascript»

Línea 1: Línea 1:
 +
 
{{Desarrollo}}
 
{{Desarrollo}}
  
Línea 60: Línea 61:
 
Propiedad:<br>
 
Propiedad:<br>
  
length: devuelve al número de elementos del array; <br>
+
'''length''': devuelve al número de elementos del array; <br>
 
Uso: tabla.length <br>
 
Uso: tabla.length <br>
 
Métodos:<br><br>
 
Métodos:<br><br>
Línea 75: Línea 76:
 
var texto = a.join("-"); <br>
 
var texto = a.join("-"); <br>
 
// devuelve texto = "1-2-3" <br><br>
 
// devuelve texto = "1-2-3" <br><br>
reverse <br>
+
'''reverse''' <br>
 
Def: este método genera un nuevo array transponiendo los elementos del array al que le aplicamos dicho método.  
 
Def: este método genera un nuevo array transponiendo los elementos del array al que le aplicamos dicho método.  
 
Uso:  
 
Uso:  
Línea 93: Línea 94:
 
//devuelve "miercoles=jueves"<br><br>
 
//devuelve "miercoles=jueves"<br><br>
  
sort <br>
+
'''sort''' <br>
 
Def: ordena los elementos de un array. <br>
 
Def: ordena los elementos de un array. <br>
 
Uso: var a = []; a.sort(); <br>
 
Uso: var a = []; a.sort(); <br>
Línea 103: Línea 104:
 
===Accediendo a elementos===
 
===Accediendo a elementos===
  
Accediendo a elementos individuales del array:
+
Accediendo a elementos individuales del array: <br>
nombre_array[índice] (índice = 0,1,...,n-1) (n = nombre_array.length)
+
nombre_array[índice] (índice = 0,1,...,n-1) (n = nombre_array.length) <br>
Accediendo a todos los elementos del array:
+
Accediendo a todos los elementos del array: <br>
Método 1: bucle for  
+
Método 1: bucle for <br>
Ejemplo: for(i = 1; i< $tabla.length; i++){ ... }
+
Ejemplo: for(i = 1; i< $tabla.length; i++){ ... } <br><br>
Método 2: bucle for...in  
+
Método 2: bucle for...in <br>
var $tabla = ["lunes","martes","miercoles","jueves"];  
+
var $tabla = ["lunes","martes","miercoles","jueves"]; <br>
for (indice in $tabla){  
+
for (indice in $tabla){ <br>
print (indice+ "=>" + $tabla[indice]);  
+
print (indice+ "=>" + $tabla[indice]); <br>
}  
+
} <br>
/*devuelve:  
+
/*devuelve: <br>
0=>lunes  
+
0=>lunes <br>
1=>martes  
+
1=>martes <br>
2=>miercoles  
+
2=>miercoles <br>
3=>jueves  
+
3=>jueves <br>
*/
+
*/ <br>
  
  
Línea 126: Línea 127:
  
 
===Ejemplos===
 
===Ejemplos===
Ejemplo 1
+
Ejemplo 1 <br>
  
// definiendo un array $tabla 2 x 5  
+
// definiendo un array $tabla 2 x 5 <br>
var matriz = new Array();  
+
var matriz = new Array(); <br>
matriz[0] = new Array(1,2,3,4,5);  
+
matriz[0] = new Array(1,2,3,4,5); <br>
matriz[1] = new Array(6,7,8,9,0);  
+
matriz[1] = new Array(6,7,8,9,0); <br>
print (matriz[1].join("%"));  
+
print (matriz[1].join("%")); <br>
// devuelve "6%7%8%9%0"  
+
// devuelve "6%7%8%9%0" <br>
print (matriz[0][2]);  
+
print (matriz[0][2]); <br>
// devuelve "3"
+
// devuelve "3"<br><br>
  
Ejemplo 2
+
Ejemplo 2 <br>
  
// array $tabla 2 x 3  
+
// array $tabla 2 x 3 <br>
var $tabla = [[1,2,3],[3,4,5]];  
+
var $tabla = [[1,2,3],[3,4,5]]; <br>
for ($indice in $tabla){  
+
for ($indice in $tabla){ <br>
print ($indice+ "=>" + $tabla[$indice]);  
+
print ($indice+ "=>" + $tabla[$indice]); <br>
}  
+
} <br>
/* devuelve:  
+
/* devuelve: <br>
0=>1,2,3  
+
0=>1,2,3 <br>
1=>3,4,5  
+
1=>3,4,5 <br>
*/
+
*/<br><br>
  
Ejemplo 3
+
Ejemplo 3 <br>
  
// array $tabla 2 x 3  
+
// array $tabla 2 x 3 <br>
var $tabla = [[1,2,3],[4,5,6]];  
+
var $tabla = [[1,2,3],[4,5,6]]; <br>
for ($i in $tabla){  
+
for ($i in $tabla){ <br>
for ($j in $tabla[$i]){  
+
for ($j in $tabla[$i]){ <br>
print ("(" +$i + "," + $j+ ") = " + $tabla[$i][$j]);  
+
print ("(" +$i + "," + $j+ ") = " + $tabla[$i][$j]); <br>
}  
+
} <br>
}  
+
} <br>
/* devuelve:  
+
/* devuelve: <br>
(0,0) = 1  
+
(0,0) = 1 <br>
(0,1) = 2  
+
(0,1) = 2 <br>
(0,2) = 3  
+
(0,2) = 3 <br>
(1,0) = 4  
+
(1,0) = 4 <br>
(1,1) = 5  
+
(1,1) = 5 <br>
(1,2) = 6  
+
(1,2) = 6 <br>
*/
+
*/<br>
  
  
Línea 177: Línea 178:
 
Ejemplo 1
 
Ejemplo 1
  
// definición de un array asociativo  
+
Definición de un array asociativo <br>
var $hash = {"DNI":"123","Nombre":"José","Apellidos":"López"};
+
var $hash = {"DNI":"123","Nombre":"José","Apellidos":"López"}; <br>
print ($hash["Nombre"]);  
+
print ($hash["Nombre"]); <br>
//devuelve "José"  
+
//devuelve "José" <br>
//devuelve lo mismo si usamos la notación dot  
+
//devuelve lo mismo si usamos la notación dot <br>
print($hash.Nombre)
+
print($hash.Nombre)<br><br>
  
Ejemplo 2
+
Ejemplo 2 <br>
  
// otro método:  
+
// otro método: <br>
var $hash = {};  
+
var $hash = {}; <br>
$hash["DNI"]="123";  
+
$hash["DNI"]="123"; <br>
$hash["Nombre"]="José";  
+
$hash["Nombre"]="José"; <br>
$hash["Apellidos"]="López";  
+
$hash["Apellidos"]="López"; <br>
print ($hash["Nombre"]);  
+
print ($hash["Nombre"]); <br>
// devuelve "José"
+
// devuelve "José"<br><br>
  
Ejemplo 3
+
Ejemplo 3 <br>
  
// y otro:  
+
// y otro: <br>
var $hash = new Array();  
+
var $hash = new Array(); <br>
$hash["DNI"]="123";  
+
$hash["DNI"]="123"; <br>
$hash["Nombre"]="José";  
+
$hash["Nombre"]="José"; <br>
$hash["Apellidos"]="López";  
+
$hash["Apellidos"]="López"; <br>
print ($hash["Nombre"]);  
+
print ($hash["Nombre"]); <br>
// devuelve "José"
+
// devuelve "José" <br><br>
  
Ejemplo 4
+
Ejemplo 4 <br><br>
  
var $tabla = {"numeros":[1,2,3],"palabras":["Jose","Miguel"]};
+
var $tabla = {"numeros":[1,2,3],"palabras":["Jose","Miguel"]}; <br>
for ($i in $tabla){  
+
for ($i in $tabla){ <br>
for ($j in $tabla[$i]){  
+
for ($j in $tabla[$i]){ <br>
print ("(" +$i + "," + $j+ ") => " + $tabla[$i][$j]);  
+
print ("(" +$i + "," + $j+ ") => " + $tabla[$i][$j]); <br>
}  
+
} <br>
}  
+
} <br>
 
/* devuelve:  
 
/* devuelve:  
(numeros,0) => 1  
+
(numeros,0) => 1 <br>
(numeros,1) => 2  
+
(numeros,1) => 2 <br>
(numeros,2) => 3  
+
(numeros,2) => 3 <br>
(palabras,0) => Jose  
+
(palabras,0) => Jose <br>
(palabras,1) => Miguel  
+
(palabras,1) => Miguel <br>
*/
+
*/<br>
  
 
==Objetos==
 
==Objetos==
Línea 226: Línea 227:
 
===Ejemplos===
 
===Ejemplos===
  
Ejemplo 1
+
Ejemplo 1 <br>
function MyObjt(arr1,arr2){  
+
function MyObjt(arr1,arr2){ <br>
this.numeros = arr1;  
+
this.numeros = arr1; <br>
this.palabras = arr2;  
+
this.palabras = arr2; <br>
}  
+
} <br>
var _arr1 = [1,2,3];  
+
var _arr1 = [1,2,3]; <br>
var _arr2 = ["Jose","Miguel"];  
+
var _arr2 = ["Jose","Miguel"]; <br>
var $hash = new MyObjt(_arr1,_arr2);  
+
var $hash = new MyObjt(_arr1,_arr2); <br>
print ($hash["numeros"]);  
+
print ($hash["numeros"]); <br>
print ($hash["numeros"][0]);  
+
print ($hash["numeros"][0]); <br>
print ($hash.palabras);  
+
print ($hash.palabras); <br>
print ($hash.palabras[1])  
+
print ($hash.palabras[1]) <br>
/* devuelve:  
+
/* devuelve: <br>
1,2,3  
+
1,2,3 <br>
1  
+
1 <br>
Jose,Miguel  
+
Jose,Miguel <br>
Miguel  
+
Miguel <br>
*/
+
*/<br>
  
Ejemplo 2.
+
Ejemplo 2.<br><br>
  
function MyObjt(arr1,arr2){  
+
function MyObjt(arr1,arr2){ <br>
this.numeros = arr1;  
+
this.numeros = arr1; <br>
this.palabras = arr2;  
+
this.palabras = arr2; <br>
}  
+
} <br>
var _arr1 = [1,2,3];  
+
var _arr1 = [1,2,3]; <br>
var _arr2 = ["Jose","Miguel"];  
+
var _arr2 = ["Jose","Miguel"]; <br>
var $hash = new MyObjt(_arr1,_arr2);  
+
var $hash = new MyObjt(_arr1,_arr2); <br>
for ($i in $hash){  
+
for ($i in $hash){ <br>
for ($j in $hash[$i]){  
+
for ($j in $hash[$i]){ <br>
print ("(" +$i + "," + $j+ ") => " + $hash[$i][$j]);  
+
print ("(" +$i + "," + $j+ ") => " + $hash[$i][$j]); <br>
}  
+
} <br>
}  
+
} <br>
/* devuelve:  
+
/* devuelve: <br>
(numeros,0) => 1  
+
(numeros,0) => 1 <br>
(numeros,1) => 2  
+
(numeros,1) => 2 <br>
(numeros,2) => 3  
+
(numeros,2) => 3 <br>
(palabras,0) => Jose  
+
(palabras,0) => Jose <br>
(palabras,1) => Miguel  
+
(palabras,1) => Miguel <br>
*/
+
*/<br>
  
 
==Conclusiones==
 
==Conclusiones==

Revisión del 14:10 19 jun 2013


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
Def: 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
Def: 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
Def: 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
Def: 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.