} Skip to content

map()

Cria um novo array com os resultados da aplicação de uma função a cada elemento do array.

await db.map(key, callback)
  • key (string): Chave do array no banco
  • callback (function): Função que produz um elemento do novo array
function callback(element, index, array) {
// Retorna o novo valor para este elemento
}

Retorna um novo array com os elementos transformados.

await db.set('numeros', [1, 2, 3, 4, 5]);
// Elevar ao quadrado
const quadrados = await db.map('numeros', (num) => num * num);
console.log(quadrados); // [1, 4, 9, 16, 25]
// Multiplicar por 2
const dobrados = await db.map('numeros', (num) => num * 2);
console.log(dobrados); // [2, 4, 6, 8, 10]
await db.set('nomes', ['joão', 'maria', 'pedro']);
// Converter para maiúsculas
const maiusculas = await db.map('nomes', (nome) => nome.toUpperCase());
console.log(maiusculas); // ['JOÃO', 'MARIA', 'PEDRO']
// Adicionar prefixo
const comPrefixo = await db.map('nomes', (nome) => `Sr(a). ${nome}`);
console.log(comPrefixo); // ['Sr(a). joão', 'Sr(a). maria', 'Sr(a). pedro']
const usuarios = [
{ nome: 'João', idade: 25 },
{ nome: 'Maria', idade: 30 },
{ nome: 'Pedro', idade: 22 }
];
await db.set('usuarios', usuarios);
// Extrair apenas nomes
const nomes = await db.map('usuarios', (user) => user.nome);
console.log(nomes); // ['João', 'Maria', 'Pedro']
// Adicionar propriedade
const comStatus = await db.map('usuarios', (user) => ({
...user,
adulto: user.idade >= 18
}));
console.log(comStatus);
// [
// { nome: 'João', idade: 25, adulto: true },
// { nome: 'Maria', idade: 30, adulto: true },
// { nome: 'Pedro', idade: 22, adulto: true }
// ]
await db.set('letras', ['a', 'b', 'c', 'd']);
// Adicionar índice
const comIndice = await db.map('letras', (letra, index) => `${index}: ${letra}`);
console.log(comIndice); // ['0: a', '1: b', '2: c', '3: d']
const produtos = [
{ nome: 'Laptop', preco: 2500 },
{ nome: 'Mouse', preco: 50 },
{ nome: 'Teclado', preco: 100 }
];
await db.set('produtos', produtos);
// Calcular preço com desconto e formatação
const comDesconto = await db.map('produtos', (produto) => {
const precoComDesconto = produto.preco * 0.9; // 10% desconto
return {
nome: produto.nome,
precoOriginal: `R$ ${produto.preco}`,
precoDesconto: `R$ ${precoComDesconto.toFixed(2)}`,
economia: `R$ ${(produto.preco - precoComDesconto).toFixed(2)}`
};
});
console.log(comDesconto);
await db.set('strings', ['1', '2', '3', '4', '5']);
// Converter strings para números
const numeros = await db.map('strings', (str) => parseInt(str));
console.log(numeros); // [1, 2, 3, 4, 5]
// Converter para booleanos
const booleanos = await db.map('strings', (str) => str === '1');
console.log(booleanos); // [true, false, false, false, false]
  • Não modifica o array original
  • O novo array sempre tem o mesmo tamanho do array original
  • Se o callback retornar undefined, o elemento será undefined no novo array
  • Se a chave não existir, retorna um array vazio
  • Se o valor não for um array, converte para array antes de mapear