edubun
Português

Arrays

Um array guarda muitos valores em ordem sob um só nome. Em ["red", "green", "blue"], "red" fica no índice 0 e o comprimento é 3.

Uma lista numa variável

Imagine um programa que acompanha as notas de uma turma inteira. Trinta variáveis chamadas score1, score2, score3 seriam um sofrimento, e impossíveis de percorrer com um laço. Um array é um único valor que guarda uma lista ordenada de outros valores. Ele se escreve com colchetes e vírgulas:

const fruits = ["apple", "banana", "cherry"];
console.log(fruits.length);   // mostra 3
console.log(fruits[0]);       // mostra apple
console.log(fruits[2]);       // mostra cherry

Cada valor de um array é um elemento. Os elementos são numerados por índice, a partir de 0, exatamente como os caracteres de uma string. Então o primeiro elemento é fruits[0] e o último é fruits[fruits.length - 1]. Pedir um índice que não existe, como fruits[10], não causa erro; dá undefined. Um array pode guardar qualquer tipo de valor, e os elementos nem precisam ser do mesmo tipo, embora na prática costumem ser.

Mudando um array

Ao contrário das strings, os arrays podem ser alterados no lugar. Atribua a um índice para trocar um elemento: fruits[1] = "blueberry". O método push acrescenta um elemento no fim e pop remove o último e o devolve. unshift e shift fazem o mesmo no começo. Isso funciona mesmo quando o array foi declarado com const. const só impede que o nome aponte para outro array; ele não congela o conteúdo.

const list = ["milk", "eggs"];
list.push("bread");
console.log(list.length);        // mostra 3
const last = list.pop();
console.log(last);               // mostra bread
console.log(list.join(", "));    // mostra milk, eggs

Mais dois métodos respondem a perguntas. includes(x) dá true se x está no array, e indexOf(x) dá o índice dele, ou -1 se ele não estiver. join(", ") cola todos os elementos numa string só, com o separador dado entre eles, que é o jeito mais fácil de mostrar uma lista arrumada.

Percorrendo um array com um laço

Arrays e laços andam juntos. Um laço for com um índice de 0 até o comprimento, sem incluí-lo, visita todos os elementos. O laço for...of é mais curto quando você só precisa dos valores, não das posições:

const scores = [70, 85, 90, 55];

for (let i = 0; i < scores.length; i++) {
  console.log(i, scores[i]);
}

let total = 0;
for (const s of scores) {
  total += s;
}
console.log(total / scores.length);   // mostra 75

Repare na condição i < scores.length, com < e não <=. Com quatro elementos os índices vão de 0 a 3, e usar <= leria um passo além do fim. Esse erro de um a mais (off-by-one) é um dos bugs mais comuns de toda a programação.

Dois nomes, um array

Números e strings são copiados quando você os atribui a outra variável, mas arrays não. Depois de const a = [1, 2]; const b = a; os dois nomes apontam para o mesmíssimo array, então b.push(3) também muda o que você vê por a: a.length agora é 3. Se você precisa de uma cópia separada, escreva const b = [...a];, que espalha os elementos de a num array novinho. Os objetos, da próxima unidade, se comportam do mesmo jeito.

As caixas de prática deste site mostram arrays numa forma compacta, como ["a","b"] ou [1,2,3]. O console das ferramentas de desenvolvedor do navegador acrescenta espaços e pode mostrá-los de outro jeito. Use join quando quiser controlar a saída com exatidão.

Exemplo resolvido. Ache o maior número de [4, 17, 9, 12] sem Math.max. Comece com let best = nums[0], percorra o resto e, sempre que um elemento for maior que best, guarde-o em best. Depois do laço, best vale 17. A mesma forma, uma variável que lembra o melhor até agora, acha a palavra mais longa, o preço mais barato ou a data mais antiga.

arrayUma lista ordenada de valores entre [ ]
elementoUm valor dentro de um array
arr[0]O primeiro elemento
arr[arr.length - 1]O último elemento
push / popAcrescentar no fim / remover do fim
includestrue se o valor está no array
joinColar os elementos numa string só
for...ofPercorrer os valores de um array
off-by-oneIr um passo longe demais ou parar um antes, muitas vezes <= no lugar de <
  1. O que isto mostra?
    const a = [10, 20, 30];
    console.log(a[1]);
  2. O que isto mostra?
    const a = [10, 20, 30];
    console.log(a.length);
  3. O que isto mostra?
    const a = ["x", "y", "z"];
    console.log(a[a.length - 1]);
  4. O que isto mostra?
    const a = [1, 2];
    a.push(3);
    a.push(4);
    console.log(a.length);
  5. O que isto mostra?
    const a = [5, 6, 7];
    const x = a.pop();
    console.log(x, a.length);
    • 7 2
    • 5 2
    • 7 3
  6. O que isto mostra?
    const a = ["cat", "dog"];
    console.log(a.indexOf("bird"));
  7. O que isto mostra?
    const a = ["a", "b", "c"];
    console.log(a.join("-"));
  8. O que isto mostra?
    const a = [3, 4, 5];
    let t = 0;
    for (const n of a) {
      t += n;
    }
    console.log(t);
  9. O que isto mostra?
    const a = [1, 2, 3];
    a[0] = 9;
    console.log(a[0] + a[2]);
  10. O que isto mostra?
    const a = ["red", "green"];
    console.log(typeof a[5]);
    • undefined
    • Um erro
    • string
  11. Qual cabeçalho de laço visita cada índice de arr exatamente uma vez?
    • for (let i = 0; i < arr.length; i++)
    • for (let i = 0; i <= arr.length; i++)
    • for (let i = 1; i <= arr.length; i++)
Pontos-chave
  • Arrays guardam valores ordenados entre [ ]; os índices começam em 0.
  • O último elemento é arr[arr.length - 1].
  • push e pop acrescentam e removem no fim; arrays const ainda podem mudar por dentro.
  • includes, indexOf e join respondem a perguntas comuns.
  • Faça o laço com i de 0 enquanto i < length, ou use for...of para os valores.
Fontes deste curso (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Data de verificação: 2026-10-17