Está clase, como ya sabemos, permite crear una matriz de datos a utilizar en nuestros programas. Vamos a estudiar algunos de sus métodos. Veamos el siguiente ejemplo:
<html>
<body>
<script type="text/javascript">
var famname = new Array(3);
famname[0] = "Jani";
famname[1] = "Tove";
famname[2] = "Hege";
document.write(famname.length + "<br>");
document.write(famname.join(".") + "<br>");
document.write(famname.reverse() + "<br>");
document.write(famname.push("Ola","Jon") + "<br>");
document.write(famname.pop() + "<br>");
document.write(famname.shift() + "<br>");
</script>
</body>
</html>
Estudiemos el código. Después de crear la matriz, utilizamos algunas funciones y propiedades. length sirve para conocer la cantidad de elementos que contiene la matriz propiamente dicha. La función join permite unir todos los elementos separados por una cádena de caracteres que pasamos como parámetro, en este caso, ".". La siguiente función es reverse, que posiciona los elementos actuales de forma inversa. push nos permite añadir un nuevo elemento dentro de la matriz (en realidad, podemos añadir cualquier cantidad de ellos). pop extrae el último elemento de la matriz y lo devuelve. Y por último, shift, que extrae y devuelve el primer elemento de la lista. Con esto, es fácil contrastar el código y el resultado final en el navegador.
Si queremos ordenar los elementos de una matriz, podemos usar la función miembro sort para realizar esta operación. Pero la ordenación realizada es "lexicográfica", es decir, que se ordenarán alfabéticamente. Si queremos realizar una ordenación númerica, podemos crear una función de comparación como veremos en el siguiente ejemplo:
<html>
<body>
<p>
Nota: Si no usamos función de comparación para definir el orden, la matriz
se ordenará siempre alfabéticamente. "500" vendrá antes que "7", pero en una ordenación
numérica, 7 viene antes que 500. Este ejemplo muestra como usar la funcion de
comparación - que ordenará correctamente los elementos tanto en una matriz numérica
como de cadenas.
</p>
<script type="text/javascript">
array1=new Array("Rojo","Verde","Azul");
array2=new Array("70","9","800");
array3=new Array(50,10,2,300);
array4=new Array("70","8","850",30,10,5,400);
function compareNum(a,b)
{
return a-b;
}
document.write("Ordenado: " + array1.sort());
document.write("<br><br>");
document.write("Ordenado sin compareNum: " + array2.sort());
document.write("<br>");
document.write("Ordenado con compareNum: " + array2.sort(compareNum));
document.write("<br><br>");
document.write("Ordenado sin compareNum: " + array3.sort());
document.write("<br>");
document.write("Ordenado con compareNum: " + array3.sort(compareNum));
document.write("<br><br>");
document.write("Ordenado sin compareNum: " + array4.sort());
document.write("<br>");
document.write("Ordenado con compareNum: " + array4.sort(compareNum));
</script>
</body>
</html>
Como podemos apreciar en el código, sólo las llamadas a sort que tienen como parámetro la función de comparación "compareNum" han sido ordenadas numéricamente.