JavaScript/Array
JavaScript | ||
← Volver a Operadores | Array | Seguir con Boolean → |
O obxecto Array refírese a unha lista de datos, sexan do tipo que sexan. É útil para gardar un conxunto de datos ordenados que teñen relación entre si. Hai varios xeitos de crealos, e de asignar valor aos seus índices. Ademais pódense aniñar creando estruturas de árbore complexas.
Para crear arrays pódese facer destes xeitos:
nome_array=new Array(lonxitude);
nome_array=new Array(elemento1, elemento2,..., elementok);
nome_array=[];
nome_array=[ elemento1, elemento2,..., elementok ];
Para acceder a un elemento do array podemos facelo así:
alert( nome_array [ índice ] );
Onde índice será o número de elemento ao que queiramos acceder. Hai que ter en conta que os elementos empezan a contarse desde cero, é dicir, o primeiro elemento é nome_array[0], o segundo nome_array[1] e así sucesivamente.
Os arrays non teñen porqué ser dun só tipo; un array con moitos valores de diferentes tipos sería igualmente válido:
meuarray=new Array("Ola","isto é", "un","array",3.1416, cont);
Ademais un array pode almacenar moitos elementos. Se creamos un elemento no posto 87 crearanse automaticamente todos os valores anteriores que non estean definidos cun valor baleiro. Pódese estender todo o que se queira, pero non se pode empequeñecer nin co delete, así que hai que procurar facelos compactos para aforrar memoria.
Como aniñar arrays
[editar]Un array pode estar contido dentro doutro array, é dicir, pode ser un elemento doutro array alleo sen ningún problema:
var array1=new Array("a ,""b","c","d");
var array2=new Array("plátano","pera","mazá","fresa");
array1[4]=array2;
O elemento 4 de array1 é outro array. Para acceder ao elemento "pera" faremos:
array2[1];
array1[4][1];
As dúas opcións son válidas.
Propiedades dos arrays
[editar]length
[editar]Os arrays teñen como propiedade principal o length.
meuarray.length;
A propiedade length dun array devolve un enteiro co número de elementos que contén o array. Nótese que o número de elementos é o índice do último elemento máis unha unidade, e non o índice do último elemento.
prototype
[editar]A propiedade prototype téñena moitos obxectos en JavaScript. Serve para crear métodos e propiedades dos arrays genéricamente. Por se a linguaxe quédallenos curto. Poderiamos implementar un método inexistente e propio para, por exemplo, alertar o contido dun array:
var array1=new Array("a ,""b","c","d");
var array2=new Array("plátano","pera","mazá","fresa");
array1[4]=array2;
Array.prototype.alertar=function() {
alert(this.toString());
}
array1.alertar();
array2.alertar();
Así, genéricamente, todos os obxectos Array do noso script estarían dotados do método alertar().
Métodos dos arrays
[editar]- join(elemento_enlace): Este método devolve un string resultado da unión de todos os elementos do array intercalando entre eles o string elemento_enlace.
var meuarray=new Array("plátano","pera","mazá","amorodo");
document.write( meuarray.join(" e ") ); //plátano e pera e mazá e amorodo
- toString(): Devolve un string de todos os elementos separados por comas. É equivalente a un join(","), só que todos os obxectos en javascript teñen un método toString() asociado.
var meuarray=new Array("plátano","pera","mazá","amorodo");
var str=meuarray.toString(); //plátano, pera, mazá, amorodo
- pop(): Elimina o último elemento do array e devolve ese elemento. Este método modifica a lonxitude total do array, así que hai que ter precaución con el en bucles ou repeticións.
var meuarray=new Array("plátano","pera","mazá","amorodo");
var long1=meuarray.length; // long1=4
var ultimo=meuarray.pop(); // ultimo="amorodo"
var long2=meuarray.length; // long2=3
- shift(): É como o pop(), só que no canto de actuar no último elemento actúa no primeiro, devolvendo este elemento. Obviamente tamén modifica a lonxitude do array en cuestión.
var meuarray=new Array("plátano","pera","mazá","amorodo");
var long1=meuarray.length; // long1=4
var primeiro=meuarray.shift(); // primeiro="plátano"
var long2=meuarray.length; // long2=3
- push(elemento1, elemento2,..., elementok): O método push engade os elementos pasados por parámetro ao final do array, e, xa que logo, modificando a súa lonxitude total. Devolve o total de elementos que resultan logo de engadir, coma se dun length fixésemos despois.
var meuarray=new Array("plátano","pera","mazá","amorodo");
var long1=meuarray.length; // long1=4
var nuevaLong=meuarray.push("sandía","melon","kiwi"); //nuevaLong=7
var long2=meuarray.length; // long2=7
- unshift(elemento1, elemento2,..., elementok): Igual que o push, só que engade os elementos especificados ao principio do array, e devolve a nova lonxitude do array.
var meuarray=new Array("plátano","pera","mazá","amorodo");
var long1=meuarray.length; // long1=4
var nuevaLong=meuarray.unshift("sandía","melón","kiwi"); //nuevaLong=7
var long2=meuarray.length; // long2=7
- reverse(): Inviste os índices dos elementos do array. O primeiro será o último e o último o primeiro; o segundo será o penúltimo e o penúltimo será o segundo; e así sucesivamente.
var meuarray=new Array("plátano","pera","mazá","amorodo");
var meuarrayAlReves=meuarray.reverse(); // meuarrayAlReves=["amorodo","mazá","pera","plátano"];
- slice(limite_inf, limite_sup): slice extrae (sen modificalo) unha porción do array orixinal. Así limite_inf é o índice do primeiro elemento que se debe extraer e limite_sup é o índice do último elemento que se debe extraer máis unha unidade.
var meuarray=new Array("plátano","pera","mazá","amorodo","uva","sandía","melón","kiwi");
var meuarray2=meuarray.slice(2,5); //mazá,fresa, uva
- splice(indice_inicial, num_elementos[, elemento1, elemento2,..., elementok]): Este é probablemente o método máis complexo dos arrays. É capaz de eliminar elementos e de engadir novos elementos tamén. Modificará polo xeral a lonxitude do array (a non ser que engadamos o mesmo número de elementos que eliminemos).
- indice_inicial: É un número enteiro que indica a partir de que elemento comezamos ou a borrar ou a inserir elementos no array.
- num_elementos: É un número que indica cantos elementos do array eliminamos a partir de indice_inicial. Se é un 0 debemos especificar novos elementos obrigatoriamente e splice non devolve nada. Se é 1 splice devolverá ese elemento eliminado, e se é maior de 1 splice devolverá un array cos elementos eliminados.
- elemento1, elemento2,..., elementok: Son os parámetros (opcionais) que especifican os novos elementos do array que se engadirán na posición indice_inicial.
var meuarray=new Array("plátano","pera","mazá","amorodo","uva","sandía","melón","kiwi");
meuarray.splice(0,0,"laranxa","mandarina","pomelo");
// meuarray=laranxa, mandarina, pomelo, plátano, pera, mazá, fresa, uva, sandía, melon, kiwi
var elementoPera=meuarray.splice(4,1); // elementoPera=pera
//meuarray=laranxa, mandarina, pomelo, plátano, mazá, fresa, uva, sandía, melon, kiwi
var fresa_uva_sandia=meuarray.splice(5,3); // amorodo_uva_sandía=amorodo, uva, sandía
//meuarray=laranxa, mandarina, pomelo, plátano, mazá, melón, kiwi
meuarray.splice(2,3,"linguado","pescada","sardiña","xarda");
//meuarray=laranxa, mandarina, linguado, pescada, sardiña, xarda, melón, kiwi
- sort([funcion_comparacion]): Un dos poucos métodos por defecto que recibe unha función como parámetro. Ordena o array segundo o criterio que conteña funcion_comparacion. Podemos ordenar de menor a maior números, alfabeticamente letras... etc. O parámetro é opcional; por defecto sort() ordena de menor a maior e alfabeticamente, antepondo os números ás letras e as maiúsculas.
- funcion_comparacion: É unha función que contén dous parámetros obrigados, que serán os elementos do array a comparar. Segundo o que devolva esta función, sort interpretase unha cousa ou outra:
- funcion_comparacion(a, b)<0 --> a lt;b.&
- funcion_comparacion(a, b)=0 --> a=b
- funcion_comparacion(a, b)>0 --> a gt;b.&
- funcion_comparacion: É unha función que contén dous parámetros obrigados, que serán os elementos do array a comparar. Segundo o que devolva esta función, sort interpretase unha cousa ou outra:
Para ordenar elementos existen outros algoritmos, algúns máis legibles outros máis eficaces: O Ordenamento por mestura, Ordenamento de burbulla, Shell sort e o Quicksort son algúns deles.
JavaScript | ||
← Volver a Operadores | Array | Seguir con Boolean → |