Arrays
Em JavaScript os arrays são estruturas de dados do tipo lista que armazenam vários valores em uma única variável. Os arrays não têm um tamanho fixo, assim o número de elementos que podem ser armazenados é dinâmico. Além disso os arrays podem armazenar qualquer tipo de dado, inclusive armazenar outros arrays e valores de tipos diferentes ao mesmo tempo.
Para criar um array vazio em JavaScript basta declarar uma variável com o valor
igual a []
. Podemos até preenchê-lo com valores iniciais usando a vírgula para
separar cada item. Eis um exemplo:
// Cria um array vazio
var array1 = [];
// Cria um array com valores iniciais
var array2 = [1, "string", false];
Para acessar os elementos de um array basta usar o índice do elemento (isso serve para tanto escrita e leitura). O índice começa em 0 e vai até o tamanho do array menos 1. Assim se quisermos acessar o primeiro elemento de um array basta usarmos o índice 0, se quisermos acessar o segundo elemento basta usar o índice 1 e assim por diante. A sintaxe para acessar um valor em um array é a seguinte:
var array = [1, 2, 3];
console.log(array[0]); // Resultado: 1
console.log(array[1]); // Resultado: 2
console.log(array[2]); // Resultado: 3
// Altera o valor do primeiro elemento do array
array[0] = "string";
console.log(array[0]); // Resultado: "string"
console.log(array[1]); // Resultado: 2
console.log(array[2]); // Resultado: 3
Se quisermos acessar o comprimento de um array basta acessar a propriedade
length
do array. Essa propriedade pode ser sobrescrita, mas não é recomendado.
Caso a propriedade length
sobrescrita for maior que o comprimento do array, o
array será preenchido com espaços vazios. Caso a propriedade length
sobrescrita for menor que o comprimento do array, os elementos a mais serão
removidos.
var array = [1, 2, 3];
console.log(array.length); // Resultado: 3
array.length = 5;
console.log(array); // Resultado: [1, 2, 3, , ]
array.length = 2;
console.log(array); // Resultado: [1, 2]
Métodos Comuns
push()
Adiciona um ou mais elementos no final do array.
var array = [1, 2, 3];
array.push(4, 5);
console.log(array); // Resultado: [1, 2, 3, 4, 5]
pop()
Remove o último elemento do array, retornando o valor removido.
var array = [1, 2, 3];
var ultimo = array.pop();
console.log(array); // Resultado: [1, 2]
console.log(ultimo); // Resultado: 3
shift()
Remove o primeiro elemento do array, retornando o valor removido.
var array = [1, 2, 3];
var primeiro = array.shift();
console.log(array); // Resultado: [2, 3]
console.log(primeiro); // Resultado: 1
unshift()
Adiciona um elemento no início do array.
var array = [1, 2, 3];
array.unshift(4, 5);
console.log(array); // Resultado: [4, 5, 1, 2, 3]
splice()
Remove ou adiciona em qualquer posição do array. Pode remover 1 ou mais elementos e retorna outro array com os elementos removidos. Esse método altera o array original.
O primeiro número passado à função é a posição do elemento que será removido. O segundo número passado é o número de elementos que serão removidos. Se não for passado um segundo número, todos os elementos a partir da posição passada serão removidos. Parâmetros adicionais são os elementos que serão adicionados no array.
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(array); // Resultado: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// Remove o segundo elemento
array.splice(1, 1);
console.log(array); // Resultado: [1, 3, 4, 5, 6, 7, 8, 9, 10]
// Remove o terceiro e o quarto elemento
array.splice(2, 2);
console.log(array); // Resultado: [1, 3, 6, 7, 8, 9, 10]
// Remove todos os elementos a partir do sexto elemento
array.splice(5);
console.log(array); // Resultado: [1, 3, 6, 7, 8]
// Adiciona dois elementos após o terceiro elemento
array.splice(3, 0, 11, 12);
console.log(array); // Resultado: [1, 3, 6, 11, 12, 7, 8]
slice()
Retorna um novo array com os elementos do array original. O primeiro número passado à função é a posição do primeiro elemento que será retornado. O segundo número passado é a posição do último elemento que será retornado. Esse método não altera o array original.
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(array.slice(0, 5)); // Resultado: [1, 2, 3, 4, 5]
console.log(array.slice(5)); // Resultado: [6, 7, 8, 9, 10]
indexOf()
Encontra o índice do primeiro elemento do array que é igual ao valor passado.
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(array.indexOf(5)); // Resultado: 4
sort()
Ordena os elementos do array usando a função de comparação passada como parâmetro. A função de comparação deve conter dois parâmetros e retornar um número negativo, zero ou positivo dependendo do que o primeiro parâmetro seja menor, igual ou maior que o segundo parâmetro, respectivamente.
var array = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
// Ordenação crescente
array.sort((a, b) => a - b);
console.log(array); // Resultado: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
forEach()
Executa uma função de callback para cada elemento do array. A função opcionalmente pode ter como parâmetro o elemento atual, o índice do elemento e o próprio array.
var array = [1, 2, 3];
array.forEach((elemento, indice, array) => {
console.log(elemento); // Resultado: 1, 2, 3
console.log(indice); // Resultado: 0, 1, 2
console.log(array); // Resultado: [1, 2, 3], [1, 2, 3], [1, 2, 3]
});