DevPath · Aprenda a programar ESPTEN

Estruturas de dados

Map e Set

Map e Set

Além dos objetos e arrays, o JavaScript oferece duas estruturas especializadas.

Map: pares chave-valor

Um Map associa chaves a valores. Diferente de um objeto comum, suas chaves podem ser de qualquer tipo (até objetos ou funções) e ele lembra a ordem de inserção.

const estoque = new Map();
estoque.set("maçãs", 50);
estoque.set("peras", 30);

console.log(estoque.get("maçãs")); // 50
console.log(estoque.has("peras"));  // true
console.log(estoque.size);          // 2
estoque.delete("peras");

Você pode percorrê-lo facilmente:

for (const [fruta, quantidade] of estoque) {
  console.log(fruta, quantidade);
}

Set: valores únicos

Um Set é uma coleção de valores sem duplicatas.

const etiquetas = new Set(["js", "web", "js"]);
console.log(etiquetas.size); // 2 (a duplicata é ignorada)
etiquetas.add("css");
console.log(etiquetas.has("web")); // true

Um truque comum: remover duplicatas de um array.

const unicos = [...new Set([1, 1, 2, 3, 3])]; // [1, 2, 3]

Quando usar cada um?

Exemplos

Contar frequências com Map

const palavras = ["sol", "mar", "sol", "luz", "mar", "sol"];
const contagem = new Map();
for (const p of palavras) {
  contagem.set(p, (contagem.get(p) || 0) + 1);
}
console.log([...contagem.entries()]);

União de dois conjuntos com Set

const a = new Set([1, 2, 3]);
const b = new Set([3, 4, 5]);
const uniao = new Set([...a, ...b]);
console.log([...uniao]);
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
Pilhas e filas →