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 cherryCada 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, eggsMais 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 75Repare 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.
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.
| array | Uma lista ordenada de valores entre [ ] |
| elemento | Um valor dentro de um array |
| arr[0] | O primeiro elemento |
| arr[arr.length - 1] | O último elemento |
| push / pop | Acrescentar no fim / remover do fim |
| includes | true se o valor está no array |
| join | Colar os elementos numa string só |
| for...of | Percorrer os valores de um array |
| off-by-one | Ir um passo longe demais ou parar um antes, muitas vezes <= no lugar de < |
- O que isto mostra?
const a = [10, 20, 30]; console.log(a[1]); - O que isto mostra?
const a = [10, 20, 30]; console.log(a.length); - O que isto mostra?
const a = ["x", "y", "z"]; console.log(a[a.length - 1]); - O que isto mostra?
const a = [1, 2]; a.push(3); a.push(4); console.log(a.length); - O que isto mostra?
const a = [5, 6, 7]; const x = a.pop(); console.log(x, a.length);- 7 2
- 5 2
- 7 3
- O que isto mostra?
const a = ["cat", "dog"]; console.log(a.indexOf("bird")); - O que isto mostra?
const a = ["a", "b", "c"]; console.log(a.join("-")); - O que isto mostra?
const a = [3, 4, 5]; let t = 0; for (const n of a) { t += n; } console.log(t); - O que isto mostra?
const a = [1, 2, 3]; a[0] = 9; console.log(a[0] + a[2]); - O que isto mostra?
const a = ["red", "green"]; console.log(typeof a[5]);- undefined
- Um erro
- string
- 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++)
- 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