Nesse artigos você vai aprender tudo sobre array Javascript com um guia completo abordando os principais pontos desse assunto. Vamos começar!
O Array JavaScript não mais é que uma das estruturas de dados mais fundamentais na programação com JavaScript. Eles permitem armazenar múltiplos valores em uma única variável, facilitando a organização e manipulação de grandes conjuntos de dados.
Com diversos métodos e funcionalidades, os Arrays em JavaScript oferecem uma ampla gama de operações, desde a simples adição e remoção de elementos até transformações complexas e filtragens. Entender como utilizar Arrays eficientemente é essencial para qualquer desenvolvedor que deseja criar aplicações robustas e performáticas.
- 1. O que é um Array?
- 2. Como criar um Array?
- 3. Acessando elementos de um Array
- 4. Métodos básicos de Arrays
- 5. Iterando sobre Arrays
- 6. Métodos de transformação de Arrays
- 7. Métodos de pesquisa de Arrays
- 8. Outros métodos úteis
- sort()
- 9. Array multidimensional (array dentro de array)
- 10. Verificando se é um Array
1. O que é um Array?
Um JavaScript Array é uma estrutura de dados usada para armazenar múltiplos valores em uma única variável. É uma coleção de elementos, onde cada elemento tem um índice (posição).
2. Como criar um Array?
Como usar Colchetes ([]) no JavaScript Array
let frutas = ["Maçã", "Banana", "Laranja"];
Construtor Array
O construtor Array()
pode ser usado para criar um array de duas maneiras:
- Criar um array vazio:
const novoArray = new Array(); // Cria um array vazio chamado "novoArray"
- Criar um array com elementos iniciais:
const novoArray = new Array("laranja", "uva", "pêssego"); // Cria um array com os elementos "laranja", "uva" e "pêssego"
3. Acessando elementos de um Array
Você pode acessar os elementos de um Array usando seu índice, que começa em 0.
let frutas = ["Maçã", "Banana", "Laranja"]; console.log(frutas[0]); // Saída: Maçã console.log(frutas[1]); // Saída: Banana console.log(frutas[2]); // Saída: Laranja
4. Métodos básicos de Arrays
push()
O método push()
é usado para adicionar um ou mais elementos ao final de um array em JavaScript. Ele modifica o array original, aumentando seu tamanho e inserindo os novos elementos na última posição.
Como funciona:
- Retorno: O push() retorna o novo comprimento do array após a inserção dos elementos.
- Elementos: O push() pode receber um ou mais elementos como argumentos. Esses elementos podem ser de qualquer tipo, como números, strings, objetos ou até mesmo outros arrays.
- Inserção: Podemos inserir os elementos no final do array, na ordem em que nós fornecemos ao método.
let frutas = ["Maçã", "Banana"]; frutas.push("Laranja"); console.log(frutas); // Saída: ["Maçã", "Banana", "Laranja"]
pop()
O método pop() usamos para remover o último elemento de um array em JavaScript e retornar esse elemento removido. Ele modifica o array original, diminuindo seu tamanho em um.
Como funciona:
- Comprimento: Se o array estiver vazio, o pop() retorna undefined.
- Remoção: O pop() remove o último elemento do array. Atenção, quando você remove o elemento, não tem como recuperar após a chamada do método.
- Retorno: O pop() retorna o elemento que foi removido do array. Isso significa que você pode armazenar o elemento removido em uma variável ou usá-lo em outra operação.
const frutas = ["maçã", "banana", "laranja"];
const ultimaFruta = frutas.pop();
console.log(frutas); // ["maçã", "banana"]
console.log(ultimaFruta); // "laranja"
shift()
O método shift() em JavaScript utilizamos para remover o primeiro elemento de um array e retornar esse elemento removido. Ele modifica o array original, diminuindo seu tamanho em um.
Como funciona:
- Comprimento: Se o array estiver vazio, o shift() retorna undefined.
- Remoção: O shift() remove o elemento do índice zero do array. Esse elemento é efetivamente removido do array e não pode ser recuperado após a chamada do método.
- Retorno: O shift() retorna o elemento que foi removido do array. Isso significa que você pode armazenar o elemento removido em uma variável ou usá-lo em outra operação.
- Reordenação: Os demais elementos do array são reordenados para ocupar as posições anteriores, com o elemento no índice um assumindo a posição zero e assim por diante.
const frutas = ["maçã", "banana", "laranja"];
const primeiraFruta = frutas.shift();
console.log(frutas); // ["banana", "laranja"]
console.log(primeiraFruta); // "maçã"
unshift()
O método unshift() em JavaScript usamos para adicionar um ou mais elementos ao início de um array e retornar o novo tamanho do array. Ele modifica o array original, aumentando seu tamanho e movendo os elementos existentes para as posições seguintes.
Como funciona:
- Retorno: O unshift() retorna o novo tamanho do array após a inserção dos elementos.
- Inserção: O unshift() recebe um ou mais elementos como argumentos. Esses elementos são inseridos no início do array, na ordem em que são fornecidos ao método.
- Reordenação: Os elementos existentes no array se reordenam para ocupar as posições posteriores, com o primeiro elemento original assumindo a posição um e assim por diante.
const frutas = ["banana", "laranja"];
frutas.unshift("maçã", "uva");
console.log(frutas); // ["maçã", "uva", "banana", "laranja"]
5. Iterando sobre Arrays
Uso do for
O loop for é uma das maneiras mais básicas e comuns de iterar sobre os elementos de um array em JavaScript. Ele permite percorrer cada elemento do array, um por um, e executar um bloco de código para cada elemento. É uma ferramenta simples e versátil para realizar diversas operações em arrays, como exibir valores, aplicar funções ou modificar elementos.
Estrutura do loop for:
for (let i = 0; i < array.length; i++) {
// Código a ser executado para cada elemento
}
Explicação:
- for: A palavra-chave que inicia o loop.
- let i = 0: Declaração da variável de controle i, inicializada com o valor 0. Essa variável será utilizada para controlar a iteração sobre os elementos do array.
- i < array.length: Condição de parada do loop. A cada iteração, o valor de i é comparado com o length do array (que indica o número total de elementos). Se i for menor que o length, o loop continua. Caso contrário, o loop é finalizado.
- i++: Incremento da variável de controle i. A cada iteração, o valor de i é incrementado em 1, fazendo com que a variável percorra os índices do array sequencialmente.
- // Código que executará cada elemento: Bloco de código que executará cada elemento do array. Esse bloco pode conter qualquer tipo de instrução JavaScript, como exibir o valor do elemento, aplicar uma função ou modificar o array.
let frutas = ["Maçã", "Banana", "Laranja"]; for (let i = 0; i < frutas.length; i++) { console.log(frutas[i]); } // Saída: // Maçã // Banana // Laranja
Usando for…of
O loop for…of é uma maneira moderna e concisa de iterar sobre os elementos de um array em JavaScript. Ele permite percorrer cada elemento do array e executar um bloco de código para cada elemento, de forma similar ao loop for, mas com uma sintaxe mais simples e legível.
Estrutura do loop for…of:
for (const elemento of array) {
// Código a ser executado para cada elemento
}
Explicação:
- for: A palavra-chave que inicia o loop.
- const elemento: Declaração da variável elemento que receberá cada elemento do array durante a iteração. A palavra-chave const garante que a variável seja imutável.
- of array: A parte of array especifica o array sobre o qual o loop irá iterar. O array pode ser qualquer tipo de array válido em JavaScript.
- // Código que executará cada elemento: Bloco de código que executará cada elemento do array.Esse bloco pode conter qualquer tipo de instrução JavaScript, como exibir o valor do elemento, aplicar uma função ou modificar o array
let frutas = ["Maçã", "Banana", "Laranja"]; for (let fruta of frutas) { console.log(fruta); } // Saída: // Maçã // Banana // Laranja
Usando forEach
O método forEach() em JavaScript é uma maneira concisa e eficiente de iterar sobre os elementos de um array e executar uma função callback para cada elemento. Ele oferece uma alternativa mais simples e moderna ao loop for tradicional, sendo ideal para realizar operações simples em cada elemento do array.
Estrutura do método forEach():
array.forEach(callbackFunction);
Explicação:
- array: O array sobre o qual a iteração será realizada.
- forEach(): O método que inicia a iteração.
- callbackFunction: A função callback que será executada para cada elemento do array. Essa função recebe como argumentos:
- elemento: O valor do elemento atual na iteração.
- indice: O índice do elemento atual na iteração.
- array: O array original sobre o qual a iteração está sendo realizada.
let frutas = ["Maçã", "Banana", "Laranja"]; frutas.forEach(function(fruta) { console.log(fruta); }); // Saída: // Maçã // Banana // Laranja
6. Métodos de transformação de Arrays
map()
O método map() é um método de array em JavaScript usado para transformar cada elemento do array em um novo elemento e retornar um novo array contendo esses elementos transformados. Ele é uma ferramenta poderosa para processar e modificar arrays de maneira concisa e eficiente.
Como funciona:
- Função de callback: O map() recebe uma função de callback como argumento. Cada Elemento do array original chama Essa função, na ordem.
- Transformação: A função de callback recebe como argumento o elemento atual do array e deve retornar um novo valor. Esse novo valor pode ser de qualquer tipo, como um número, string, objeto ou até mesmo outro array.
- Novo array: O map() cria um novo array vazio e vai preenchendo-o com os valores retornados pela função de callback para cada elemento do array original.
- Retorno: O map() retorna o novo array contendo os elementos transformados.
const numeros = [1, 2, 3, 4, 5];
const cuadrados = numeros.map(function(numero) {
return numero * numero;
});
console.log(cuadrados); // [1, 4, 9, 16, 25]
filter()
O método filter() usamos para filtrar elementos de um array em JavaScript. Ele cria um novo array contendo apenas os elementos que atendem a um critério específico, definido por uma função callback.
Como funciona:
- Função callback: O método filter() recebe uma função callback como argumento. Cada Elemento do array original chama Essa função, na ordem.
- Retorno da função: A função callback deve retornar um valor booleano (true ou false).
- Novo array: Se a função callback retornar true para um elemento, ele será incluído no novo array filtrado. Se retornar false, o elemento será ignorado.
let numeros = [1, 2, 3, 4]; let pares = numeros.filter(function(num) { return num % 2 === 0; }); console.log(pares); // Saída: [2, 4]
reduce()
O método reduce() em JavaScript utilizamos para reduzir um array a um único valor, aplicando uma função de callback a cada elemento do array e acumulando o resultado em um valor único. É uma ferramenta poderosa para realizar cálculos agregados, combinar elementos e transformar arrays de maneira concisa e eficiente.
Como funciona:
- Função de callback: O reduce() recebe uma função de callback como argumento. Cada Elemento do array original chama Essa função, na ordem.
- Acumulador: O reduce() também recebe um valor inicial, que pode ser especificado como um argumento ou ser o primeiro elemento do array se nenhum valor inicial for fornecido.
- Aplicação da função: A função de callback recebe como argumentos:
- Acumulador: O valor acumulado até o momento.
- Valor atual: O elemento atual do array sendo processado.
- Índice: O índice do elemento atual no array.
- Obs.: A função de callback deve retornar um novo valor que usará como o novo valor do acumulador na próxima iteração.
- Retorno: O reduce() retorna o valor final do acumulador após processar todos os elementos do array.
let numeros = [1, 2, 3, 4]; let soma = numeros.reduce(function(total, num) { return total + num; }, 0); console.log(soma); // Saída: 10
7. Métodos de pesquisa de Arrays
find()
O método find() em JavaScript usamos para encontrar o primeiro elemento de um array que atende a uma condição específica e retornar esse elemento. Ele é uma ferramenta útil para buscar por valores específicos em arrays de maneira concisa e eficiente.
Como funciona:
- Retorno: Se a função de callback retornar true para algum elemento, o find() retorna esse elemento encontrado. Se nenhum elemento atender à condição, o find() retorna undefined.
- Função de callback: O find() recebe uma função de callback como argumento. Cada Elemento do array original chama Essa função, na ordem.
- Condição: A função de callback recebe como argumento o elemento atual do array e deve retornar um valor booleano. Se o valor retornado for true, o elemento atual considerará o elemento de busca e a função find() interrompe a iteração pelo array.
let numeros = [1, 2, 3, 4];
let maiorQueDois = numeros.find(function(num) {
return num > 2;
});
console.log(maiorQueDois); // Saída: 3
const frutas = ["maçã", "banana", "laranja", "uva"];
const frutaComA = frutas.find(function(fruta) {
return fruta.startsWith("a");
});
console.log(frutaComA); // "maçã"
findIndex()
O método findIndex() em JavaScript é similar ao find(), mas em vez de retornar o elemento em si, ele retorna o índice do primeiro elemento do array que atende a uma condição específica. É uma ferramenta útil para localizar a posição de um valor específico em um array de maneira concisa e eficiente.
Como funciona:
- Retorno: Se a função de callback retornar true para algum elemento, o findIndex() retorna o índice desse elemento encontrado. Se nenhum elemento atender à condição, o findIndex() retorna -1.
- Função de callback: O findIndex() recebe uma função de callback como argumento. Cada Elemento do array original chama Essa função, na ordem.
- Condição: A função de callback recebe como argumento o elemento atual do array e deve retornar um valor booleano. Se o valor retornado for true, o índice do elemento atual considerará o índice de busca e a função findIndex() interrompe a iteração pelo array.
let numeros = [1, 2, 3, 4]; let indiceMaiorQueDois = numeros.findIndex(function(num) { return num > 2; }); console.log(indiceMaiorQueDois); // Saída: 2
const frutas = ["maçã", "banana", "laranja", "uva"];
const indiceFrutaComA = frutas.findIndex(function(fruta) {
return fruta.startsWith("a");
});
console.log(indiceFrutaComA); // 0
8. Outros métodos úteis
concat()
O método concat() em JavaScript utilizamos para combinar dois ou mais arrays em um novo array, preservando os arrays originais. É uma ferramenta útil para concatenar, unir ou mesclar arrays de maneira concisa e eficiente.
Como funciona:
- Retorno: O concat() retorna o novo array contendo os elementos concatenados.
- Combinação: O concat() recebe um ou mais arrays como argumentos. O novo array concatena esses arrays, na ordem especificada.
- Elementos individuais: Se um dos argumentos for um elemento simples (string, número, booleano, etc.), conversão dele será em um array de um único elemento e concatenado ao novo array.
- Novo array: O concat() cria um novo array vazio e vai preenchendo-o com os elementos dos arrays originais, na ordem especificada.
let array1 = ["A", "B"]; let array2 = ["C", "D"]; let novoArray = array1.concat(array2); console.log(novoArray); // Saída: ["A", "B", "C", "D"]
const frutas1 = ["maçã", "banana"];
const frutas2 = ["laranja", "uva"];
const legumes = ["batata", "cenoura"];
const frutasTodas = frutas1.concat(frutas2);
const tudoMisturado = frutasTodas.concat(legumes);
console.log(frutasTodas); // ["maçã", "banana", "laranja", "uva"]
console.log(tudoMisturado); // ["maçã", "banana", "laranja", "uva", "batata", "cenoura"]
slice()
O método slice() em JavaScript utilizamos para extrair uma parte de um array e retornar essa parte como um novo array, sem modificar o array original. É uma ferramenta poderosa para selecionar subconjuntos de um array de maneira concisa e eficiente.
Como funciona:
- Índices: O slice() recebe dois argumentos numéricos: start e end. O índice start indica a posição inicial da parte a ser extraída, e o índice end indica a posição final (não incluída).
- Seleção: Se os valores de start e end forem positivos, a parte do array a ser extraída começa na posição start e vai até a posição end-1.
- Índices negativos: Se os valores de start e end forem negativos, eles indicam posições a partir do final do array. Por exemplo, start: -2 indica o penúltimo elemento e end: -1 indica o último elemento.
- Limites: Se o valor de start for maior que o valor de end, o slice() retorna um array vazio.
- Retorno: O slice() retorna um novo array contendo a parte extraída do array original.
let frutas = ["Maçã", "Banana", "Laranja", "Uva"]; let algumasFrutas = frutas.slice(1, 3); console.log(algumasFrutas); // Saída: ["Banana", "Laranja"]
const numeros = [1, 2, 3, 4, 5];
const subArray1 = numeros.slice(1, 4); // [2, 3, 4]
const subArray2 = numeros.slice(-3); // [3, 4, 5]
const subArray3 = numeros.slice(2, -1); // [3, 4]
console.log(subArray1);
console.log(subArray2);
console.log(subArray3);
splice()
O método splice() em JavaScript é uma ferramenta poderosa para modificar o conteúdo de um array, permitindo adicionar, remover e substituir elementos de maneira concisa e eficiente. Ele é um dos métodos mais versáteis para manipular arrays, oferecendo diversas funcionalidades em uma única função.
Como funciona:
- Posição inicial: O splice() recebe três argumentos principais: start, deleteCount e item1, item2, … (opcional). O argumento start indica a posição inicial no array onde a modificação deve ocorrer.
- Elementos a serem removidos: O argumento deleteCount indica o número de elementos a serem removidos a partir da posição start. Se deleteCount for zero, nenhum elemento será removido.
- Elementos a serem adicionados: Os argumentos opcionais item1, item2, …, contendo valores de qualquer tipo, indicam os elementos que serão inseridos no array a partir da posição start, substituindo os elementos removidos (se houver) ou adicionando novos elementos no final do array.
- Modificação do array: O splice() modifica o array original no local.
- Retorno: O splice() retorna um novo array contendo os elementos removidos do array original.
let frutas = ["Maçã", "Banana", "Laranja"]; frutas.splice(1, 1, "Uva"); console.log(frutas); // Saída: ["Maçã", "Uva", "Laranja"]
const numeros = [1, 2, 3, 4, 5];
// Removendo elementos
const removidos = numeros.splice(2, 2); // remove os elementos 3 e 4, armazenando-os em "removidos"
console.log(numeros); // [1, 2, 5]
console.log(removidos); // [3, 4]
// Substituindo elementos
numeros.splice(1, 2, 6, 7); // substitui os elementos 2 e 3 por 6 e 7
console.log(numeros); // [1, 6, 7, 5]
// Adicionando elementos
numeros.splice(3, 0, 8, 9); // insere os elementos 8 e 9 após o elemento 2
console.log(numeros); // [1, 6, 7, 8, 9, 5]
sort()
O método sort() em JavaScript utilizamos para ordenar os elementos de um array, de acordo com um critério específico. Ele é uma ferramenta poderosa para organizar e estruturar dados em arrays de maneira concisa e eficiente.
Como funciona:
- Critério de ordenação: O sort() recebe um argumento opcional, que é uma função de comparação. Essa função é chamada para cada par de elementos consecutivos do array, na ordem. A função de comparação deve retornar um valor numérico:
- Negativo (
a < b
): Se o primeiro elemento (a
) for menor que o segundo elemento (b
), a função deve retornar um valor negativo. - Zero (
a === b
): Se os elementos forem considerados iguais, a função deve retornar zero. - Positivo (
a > b
): Se o primeiro elemento (a
) for maior que o segundo elemento (b
), a função deve retornar um valor positivo.
- Negativo (
- Ordenação interna: O sort() utiliza um algoritmo de ordenação interna, como o quicksort ou o merge sort, para ordenar os elementos do array de acordo com os valores de retorno da função de comparação.
- Modificação do array: O sort() modifica o array original no local.
- Retorno: O sort() não retorna nenhum valor.
const numeros = [5, 2, 4, 1, 3];
numeros.sort(); // Ordena em ordem crescente: [1, 2, 3, 4, 5]
numeros.sort((a, b) => b - a); // Ordena em ordem decrescente: [5, 4, 3, 2, 1]
const frutas = ["banana", "maçã", "laranja", "uva"];
// Ordenação alfabética (crescente)
frutas.sort();
console.log(frutas); // ["banana", "laranja", "maçã", "uva"]
// Ordenação por tamanho (crescente)
function compararTamanho(a, b) {
return a.length - b.length;
}
frutas.sort(compararTamanho);
console.log(frutas); // ["uva", "maçã", "banana", "laranja"]
9. Array multidimensional (array dentro de array)
Um Array que contém outros Arrays.
let matriz = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; console.log(matriz[0][0]); // Saída: 1 console.log(matriz[1][1]); // Saída: 5 console.log(matriz[2][2]); // Saída: 9
10. Verificando se é um Array
Array.isArray()
let frutas = ["Maçã", "Banana", "Laranja"]; console.log(Array.isArray(frutas)); // Saída: true let naoArray = "Hello"; console.log(Array.isArray(naoArray)); // Saída: false
Essa é uma visão geral do JavaScript Array, cobrindo desde a criação e manipulação básica até métodos mais avançados. Arrays são uma parte da programação em JavaScript e entender como trabalhar com eles é crucial para desenvolver aplicações eficazes.