Introdução ao JavaScript
Parte 5




Uma técnica importante de programação é o uso de matrizes. A maioria das linguagens de programação os suporta de algum modo. Talvez você já tenha atingido um ponto em que as matrizes poderiam lhe ajudar ainda mais. Mas se você der uma olhada na documentação fornecida pela Netscape vai notar que nada é dito sobre matrizes. O problema é que as matrizes não existem em JavaScript! Mas existe um meio de cotornar esse problema, é claro!
Em primeiro lugar, o que são matrizes? Nós poderíamos dizer que as matrizes são uma junção de variáveis. Digamos que você queira juntar 10 variáveis. Você poderia começar com as variáveis a, b, c ... Porém isto seria muito complicado. Particularmente se você quisesse armazenar 100 variáveis ou mais. Se você tivesse uma matriz chamado 'MyArray' e dispusesse de 10 elementos, você poderia direcionar os diferentes elementos com MyArray[1], MyArray[2], MyArray[3]... (muitas linguagens de programação começam com o 0 como primeiro elemento, mas nós vamos começar com o 1 porque este é o modo que passou a ser utilizado no JavaScript). Dessa maneira, se você quiser ter o número 17 como primeiro elemento, basta escrever MyArray[1]=17. Observe que você pode trabalhar com as matrizes da mesma maneira como se faz com as variáveis normais. Mas existem alguns aspectos adicionais. Se você quiser armazenar o número 17 em todos os elementos, você deve escrever desse modo:


for (var i=1;i<11;i++) MyArray[i]=17<11;i++)

O comando for avisa ao computador quantas vezes o próximo comando deve ser executado. O laço (loop) de for se inicia com i=1. Primeiro o computador recebe o comando MyArray[1]= 17. Depois disso i é aumentado em 1 e então o comando passa a ser MyArray[2]= 17. i é aumentado até que ele atinja o valor 10. (The expression i<11 no laço de for tem que ser verdadeira; se i se tornar 11 então a expressão não será mais verdadeira. ) Agora eu vou lhe mostrar uma função para iniciar as matrizes. Ela foi discutida numa Mailing List de JavaScript.


 function initArray() {
 this.length = initArray.arguments.length
 for (var i = 0; i < this.length; i++)
 this[i+1] = initArray.arguments[i]
 }

Você não precisa entender essa função, só precisa saber usá-la. Se você quiser criar uma matriz com três elementos, basta escrever: var MyArray= new initArray(17,18,19). Para 17,18 e 19 são assignados os elementos 1,2 e 3. Você poderia escrever outra seqüência qualquer na sua matriz se quisesse. Não importa a figura que estará sendo usada! var aloai= new initArray("Isso","e'","legal"). Não há problema também em se misturar figuras diferentes: var Mistura= new initArray(17,"oi",103).

Eu vou iniciar agora a matriz 'Mistura' e lhe mostrar o resultado:

Este é o script do resultado:


 <script language="JavaScript">
 <!-- Hide
 var Mistura= new initArray(17,"oi",103);
 document.write("Elemento No. 1: "+Mistura[1]+"<br>");
 document.write("Elemento No. 2: "+Mistura[2]+"<br>");
 document.write("Elemento No. 3: "+Mistura[3]+"<br>");
 // -->
 </script>

Ontem eu escrevi um pequeno jogo, e então me deparei com um problema que talvez você também já tenha encontrado. Quando você quer saber como limpar uma janela, e procura na documentação fornecida pela Netscape, vai encontrar a função Javascript 'document.clear()'. Mas se você tenta implementar esta função não vai acontecer nada! Aparentemente a função document.clear() não funciona em nenhuma plataforma. Gordon McComb me passou então o seguinte script para se limpar janelas tal como eu pretendia.


 document.close();
 document.open();
 document.write("<P>");

Você não precisa escrever document.write("<P>");. O importante é que você mande alguma coisa para a janela. Isso funciona perfeitamente também com frames.


Agora nós vamos ver um script que permite que você navegue através de diferentes documentos. Eu estou falando das funções back() e forward(). Se você tiver um link do tipo "back" na sua página isso não é a mesma coisa que o botão "back" do Navigator da Netscape. Eu, por exemplo, tenho alguns links do tipo "back" que funcionam normalmente como qualquer outro link. Mas eu sei que o usuário da minha página provavelmente provém de uma determinada página que tem um link com a minha. O botão de "back" do Netscape Navigator funciona dando um passo atrás na sua lista histórica, e isso é o que você também pode fazer com JavaScript. Pegue este link então para dar um passo atrás! O script que eu uso aqui é o que está aqui embaixo:


 <html>
 <body>
 <FORM NAME="buttonbar">
 <INPUT TYPE="button" VALUE="Back" onClick="history.back()">
 <INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.htm'">
 <INPUT TYPE="button" VALUE="Next" onCLick="history.forward()">
 </FORM>
 </body>
 </html>

Você pode escrever também history.go(-1) e history.go(1).

 

Index - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 6 - Parte 7