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);
})();