JavaScriptFunçõesdesafio

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

Mais exercícios de Funções

JSF019 · IntermediárioComposição de funçõesJSF020 · IntermediárioIIFEJSF022 · AvançadoGenerator functionJSF023 · AvançadoFunção pura vs impura
Ver todos os exercícios de JavaScript