Vetores em JavaScript

Trabalhar com arrays (vetores) em JavaScript é bem interessante. Diferentemente da linguagem de programação C, em que vetores possuem tamanho determinado, em JavaScript os vetores são alocados de forma dinâmica, portanto, seu tamanho pode variar conforme a necessidade.

Declarando o vetor

let meuVetor = [1,2,3,4];

Ou também da seguinte forma:

let meuVetor = new Array(1,2,3,4);

As duas declarações são equivalentes.

Estrutura de dados heterogênea

Você deve se lembrar que, em C, os vetores são estruturas de dados homogêneas, ou seja, todos os elementos de um vetor devem possuir o mesmo tipo de dado.

Em JavaScript, a história é diferente. Aqui, vetores são heterogêneos: podem conter elementos de diferentes tipos de dados. Veja o exemplo a seguir:

let vetor = [1,"Jose",2,"Claudia"];
console.log(vetor);

Percorrendo o vetor

Para percorrer o vetor, podemos usar algumas estratégias. A mais clássica envolve utilizar laços de repetição, como for e while:

let vetor = [1,2,3,4];
for(let i = 0; i < 4; i++){
    console.log(`${vetor[i]}`);
}
let vetor = [1,2,3,4];
let i = 0;
while(i < 4){
    console.log(`${vetor[i]}`);
    i++;
}

Outra diferença de JavaScript para C é que podemos descobrir automaticamente o tamanho de um array, acessando uma propriedade chamada length (em breve, entenderemos o porquê disso). Nosso código, portanto, ficaria da seguinte forma:

let vetor = [1,2,3,4];
for(let i = 0; i < vetor.length; i++){
    console.log(`${vetor[i]}`);
}

Em AED2, quando criávamos uma função para imprimir um vetor, precisávamos informar também o tamanho do vetor. Aqui em JavaScript isso não é necessário:

function imprimir(vet){
    for(let i = 0; i < vet.length; i++){
        console.log(`${vet[i]}`);
    }
}

let vetor = [1,2,3,4];
imprimir(vetor);

Recursos interessantes

Vamos descobrir, também, que os vetores possuem recursos interessantes em JavaScript (novamente, em breve veremos o porquê).

Percorrer

meuVetor.forEach(item => console.log(item));

Para percorrer e imprimir também o índice, basta adicionar mais um parâmetro na função:

meuVetor.forEach((item,index) => console.log(`Posição: ${index} -> Valor: ${item}`));

Ordenar

Para ordenar os elementos de um vetor, o processo é bastante simples:

vetor.sort();

Se preferir em ordem decrescente, use:

vetor.sort().reverse();