map()
Cria um novo array com os resultados da aplicação de uma função a cada elemento do array.
Sintaxe
Section titled “Sintaxe”await db.map(key, callback)Parâmetros
Section titled “Parâmetros”key(string): Chave do array no bancocallback(function): Função que produz um elemento do novo array
Callback
Section titled “Callback”function callback(element, index, array) { // Retorna o novo valor para este elemento}Retorno
Section titled “Retorno”Retorna um novo array com os elementos transformados.
Exemplos
Section titled “Exemplos”Transformando Números
Section titled “Transformando Números”await db.set('numeros', [1, 2, 3, 4, 5]);
// Elevar ao quadradoconst quadrados = await db.map('numeros', (num) => num * num);console.log(quadrados); // [1, 4, 9, 16, 25]
// Multiplicar por 2const dobrados = await db.map('numeros', (num) => num * 2);console.log(dobrados); // [2, 4, 6, 8, 10]Transformando Strings
Section titled “Transformando Strings”await db.set('nomes', ['joão', 'maria', 'pedro']);
// Converter para maiúsculasconst maiusculas = await db.map('nomes', (nome) => nome.toUpperCase());console.log(maiusculas); // ['JOÃO', 'MARIA', 'PEDRO']
// Adicionar prefixoconst comPrefixo = await db.map('nomes', (nome) => `Sr(a). ${nome}`);console.log(comPrefixo); // ['Sr(a). joão', 'Sr(a). maria', 'Sr(a). pedro']Transformando Objetos
Section titled “Transformando Objetos”const usuarios = [ { nome: 'João', idade: 25 }, { nome: 'Maria', idade: 30 }, { nome: 'Pedro', idade: 22 }];
await db.set('usuarios', usuarios);
// Extrair apenas nomesconst nomes = await db.map('usuarios', (user) => user.nome);console.log(nomes); // ['João', 'Maria', 'Pedro']
// Adicionar propriedadeconst 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 }// ]Usando Índice no Callback
Section titled “Usando Índice no Callback”await db.set('letras', ['a', 'b', 'c', 'd']);
// Adicionar índiceconst comIndice = await db.map('letras', (letra, index) => `${index}: ${letra}`);console.log(comIndice); // ['0: a', '1: b', '2: c', '3: d']Transformações Complexas
Section titled “Transformações Complexas”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çãoconst 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);Convertendo Tipos
Section titled “Convertendo Tipos”await db.set('strings', ['1', '2', '3', '4', '5']);
// Converter strings para númerosconst numeros = await db.map('strings', (str) => parseInt(str));console.log(numeros); // [1, 2, 3, 4, 5]
// Converter para booleanosconst 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áundefinedno 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