Aula 231 - Resolução do desafio

(function () { var imc = 0; function calcularIMC(peso, alt, callback) { imc = peso / (alt ^ 2); /*Este trecho faz a verificação se foi passada a função de callback e se sim executa a função com o valor obtido em imc*/ if (callback && typeof callback === 'function'){ return callback(imc); } return imc; } function resultIMC(indice) { if (indice < 16.9) { console.log("O Imc " + indice + " é muito abaixo do peso"); } else { if (indice < 18.4) { return "O Imc " + indice + " é abaixo do peso"; } else if (indice < 24.9) { return "O Imc " + indice + " é peso normal"; } else if (indice < 29.9) { return "O Imc " + indice + " é acima do peso"; } else if (indice < 34.9) { return "O Imc " + indice + " é obesidade grau I"; } else if (indice < 40) { return "O Imc " + indice + " é obesidade grau II"; } else { return "O Imc " + indice + " é obesidade grau III"; } } } var peso = 65; var alt = 1.75; /*Primeira mudança: a função não está escrevendo diretamente na tela mas sim retornando o valor classificado*/ var imc = calcularIMC(peso, alt); var classif = resultIMC(imc); console.log(classif); /*Outra opção seria passar as dua funções diretamente na mesma variável de retorno*/ var classif2 = resultIMC(calcularIMC(peso, alt)); console.log('passando as duas funçoes juntas: ', classif2); /*A últim opção é passar a segunda função como parametro na primeira função (função de callback)*/ var imc2 = calcularIMC(peso, alt, resultIMC); console.log('passando uma função de callback: ', imc2); })();