Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Calculadora

fiz a minha usando um mapeamento.

function adicao(a, b) {
    return a + b;
}

function subtracao(a, b) {
    return a - b;
}

function multiplicacao(a, b) {
    return a * b;
}

function divisao(a, b) {
    if (b !== 0) {
        return a / b;
    } else {
        return "Erro: divisão por zero.";
    }
}



 
function calculadora(operacao, a, b) {

    const acoes = {
        soma: adicao,
        menos: subtracao,
        vezes: multiplicacao,
        divisao: divisao
    };

    if (acoes[operacao]) {
        return acoes[operacao](a,b);
    } else {
        return 'operação invalida';
    }
    
}

console.log(calculadora('soma', 11, 5));   
console.log(calculadora('vezes', 4, 2));
console.log(calculadora('divisao', 2, 2)); 
1 resposta
solução!

Olá, Tairone, tudo bem?

Que solução elegante!

Você utilizou uma abordagem excelente ao criar o objeto acoes para mapear as operações.

Essa técnica é muito superior a criar vários if/else ou um switch/case gigante, pois deixa o código mais limpo e escalável. Se amanhã você quiser adicionar uma operação de "potência" ou "resto da divisão", basta criar a função pequena e adicionar uma linha no objeto, sem precisar mexer na lógica principal da função calculadora.

Seu tratamento de erro para divisão por zero também ficou ótimo.

Bons estudos!

Sucesso ✨

Imagem da comunidade