Inversão Rápida de Chaves e Valores em Objetos JavaScript com Object.entries

Inversão Rápida de Chaves e Valores em Objetos JavaScript com Object.entries

Inverter as chaves e os valores de um objeto é uma necessidade comum ao transformar dicionários de busca bidirecionais ou reestruturar payloads de APIs. Combinando os métodos nativos Object.entries(), .map() e Object.fromEntries(), é possível realizar essa transposição de forma limpa, funcional e sem mutating no objeto original.

JavaScript

/**
 * Inverte as chaves e os valores de um objeto simples.
 * @param {Record<string, string|number>} objetoOriginal - Objeto a ser invertido.
 * @returns {Record<string, string>} Novo objeto com chaves e valores trocados.
 */
function inverterObjeto(objetoOriginal) {
  // 1. Transforma o objeto em um array de pares [chave, valor]
  // 2. Inverte cada par para [valor, chave]
  // 3. Reconstrói o objeto a partir do novo array de pares
  return Object.fromEntries(
    Object.entries(objetoOriginal).map(([chave, valor]) => [valor, chave])
  );
}

// --- Exemplo Prático de Uso ---
const mapaDeStatus = {
  200: 'OK',
  404: 'NOT_FOUND',
  500: 'INTERNAL_SERVER_ERROR'
};

const statusParaCodigo = inverterObjeto(mapaDeStatus);

console.log('Objeto Original:', mapaDeStatus);
// { '200': 'OK', '404': 'NOT_FOUND', '500': 'INTERNAL_SERVER_ERROR' }

console.log('Objeto Invertido:', statusParaCodigo);
// { OK: '200', NOT_FOUND: '404', INTERNAL_SERVER_ERROR: '500' }

Pontos-chave

  • Coerção Transparente para String: Como todas as chaves de objetos em JavaScript são convertidas para strings ou Symbols, valores numéricos passados como novos índices se tornarão chaves em formato string.
  • Risco de Sobrescrita (Valores Duplicados): Se o objeto original possuir valores duplicados, as chaves correspondentes aos valores posteriores sobrescreverão as anteriores no resultado final.
  • Métodos Nativos Modernos (ES2019+): O uso do Object.fromEntries() elimina a necessidade de acumuladores manuais com Array.prototype.reduce(), garantindo um código mais legível e idiomático.
  • Solução Imutável: A função retorna uma nova instância de objeto, mantendo os dados de entrada intactos e prevenindo efeitos colaterais na aplicação.

Thales de Oliveira Gomes

Thales de Oliveira Gomes é gestor de Tecnologia da Informação, especialista em infraestrutura de redes, computação em nuvem e operações de TI hospitalar, com mais de 18 anos de experiência na área. Graduado em Gestão de TI e pós-graduado em Engenharia de Redes e Telecomunicações, Cloud Computing, Redes de Computadores e Gestão Hospitalar, construiu uma trajetória sólida liderando projetos de alta complexidade, como a implementação e migração para nuvem de sistemas ERP de grande porte. Sua atuação no setor o levou a ser indicado ao prêmio IT Leaders Brasil na categoria Rising Leaders. Além da carreira corporativa e da paixão por tecnologia, Thales é autor independente com mais de 70 obras publicadas sobre redes, segurança da informação, Linux e física, além de criador de conteúdo no blog Vetor Tech e na plataforma CiberDicas. No universo das artes e do entretenimento, atua como produtor de música eletrônica sob o projeto Yknex, cria ilustrações digitais e compartilha walkthroughs de games no YouTube.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *