Práticas de Programação

Arrays

O que é um array?

í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étodoO que fazDevolve
push(item)adiciona no fimo novo tamanho
unshift(item)adiciona no começoo novo tamanho
pop()remove o últimoo item removido
shift()remove o primeiroo item removido
splice(pos, qtd, item)insere, troca ou exclui numa posiçãoarray com os removidos
sort()ordenao 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).