O que é um array?
- Variável simples: guarda UM valor (
let nome = "Gol"). - Variável composta (array): guarda VÁRIOS valores, os elementos, numa variável só.
- Cada elemento tem uma posição, o índice, que começa em 0.
- Pode misturar tipos: número, texto, true/false, objeto...
- É dinâmico: cresce e diminui à vontade, sem dizer o tamanho antes.
índice: 0 1 2 3 carros: ["Gol", "Fusca", "Virtus", "Ka"]
Como criar
// Literal: lista entre [ ] separada por vírgula (o mais usado) let vazio = []; // sem elementos let numeros = [4, 5, 7, 10, 20]; // 5 números let misturado = [2.5, true, "Ana"]; // 3 tipos diferentes let x = 1024; let calculado = [x, x + 1, x + 2, x + 3]; // valores podem ser contas // Construtor new Array() (menos usado) let a = new Array(); // vazio, igual a [] let b = new Array(10); // 10 posições VAZIAS let c = new Array(1, 2, "teste"); // os valores viram os elementos
Prefira o literal [ ]: é mais curto,
mais fácil de ler e mais rápido.
Como acessar
let cursos = ["Análise", "Redes", "Sistema de Informação"];
console.log(cursos); // o array inteiro
console.log(cursos[0]); // "Análise" (índice 0 = primeiro)
console.log(cursos[2]); // "Sistema de Informação"
console.log(cursos.length); // 3 (quantos elementos)
// Percorrer todos com for...of (página For)
for (let elemento of cursos) {
console.log(elemento);
}
console.table(cursos); // mostra como tabela no Console (F12)
O último índice é sempre length - 1: com 3 elementos,
os índices são 0, 1 e 2.
Métodos para mudar o array
| Método | O que faz | Devolve |
|---|---|---|
push(item) | adiciona no fim | o novo tamanho |
unshift(item) | adiciona no começo | o novo tamanho |
pop() | remove o último | o item removido |
shift() | remove o primeiro | o item removido |
splice(pos, qtd, item) | insere, troca ou exclui numa posição | array com os removidos |
sort() | ordena | o próprio array |
Para lembrar: push/pop mexem no fim;
unshift/shift mexem no começo.
pop e shift tiram um item
por vez.
splice: o canivete suíço
carros.splice(posição, quantosRemover, novoItem); carros.splice(3, 0, "Uno"); // remove 0 e INSERE "Uno" na posição 3 carros.splice(1, 1, "Uno"); // remove 1 na posição 1 e põe "Uno" no lugar (TROCA) carros.splice(2, 3); // EXCLUI 3 itens a partir da posição 2
O segundo número decide tudo: 0 só insere; maior que
0 remove (e, se tiver item, coloca no lugar).
Laboratório: o array carros
const carros = ["Gol", "Fusca", "Virtus", "Ka"];
carros.push("Fiesta");
carros.unshift("Palio");
console.table(carros);
carros.splice(1, 1, "Uno");
console.table(carros);
Experimente: digite Fiesta e clique em
push; digite Palio e clique em
unshift; depois faça o splice(1, 1, "Uno").
Código desta seção: js/arrays.js, seções 1 a 6.
Adicionar
Remover
Inserir, trocar ou excluir: splice
Outros
Cuidado com o sort em números
O sort() compara como texto, letra por
letra. Com números do mesmo tamanho funciona:
let idades = [38, 59, 28, 64, 60]; idades.sort(); // [28, 38, 59, 60, 64] certo let numeros = [10, 9, 100]; numeros.sort(); // [10, 100, 9] errado! "1" vem antes de "9"
Para ordenar números de verdade:
numeros.sort((a, b) => a - b). Essa
( ) => é uma arrow function (página
Funções).