Calculadora funcional
Em muitas aplicações reais, como processamento de comandos ou cálculo de expressões, você precisa escolher dinamicamente qual função executar com base em uma string. Um objeto que mapeia strings para funções é mais limpo e escalável do que uma cadeia de if/else, especialmente quando o número de opções cresce. Dominar essa técnica ajuda a escrever código mais modular e fácil de estender.
O PROBLEMA
Implemente calcular(op, a, b) que usa objeto para mapear string de operação para função.
EXEMPLO
calcular("soma", 5, 3) → 8
calcular("invalido", 1, 2) → "Operação inválida"SOBRE O CONCEITO
A ideia é criar um objeto onde cada chave é o nome da operação e o valor é uma função que executa o cálculo correspondente. Por exemplo, const operacoes = { soma: (a,b) => a+b }. No lugar de usar if/else para decidir qual operação rodar, você acessa a função diretamente: operacoes[op]. Se a operação não existir no objeto, o acesso retorna undefined, e aí você pode retornar "Operação inválida". O erro comum é usar if/else em vez do objeto, o que torna o código mais verboso e difícil de modificar — adicionar uma nova operação exige alterar a estrutura condicional, enquanto com o objeto basta adicionar um novo par chave-função.
RESOLUÇÃO