Boa noite a todos. Estou com um problema, não consigo fazer uma função invocar outra.
No meu código dois números são solicitados ao usuário e somados. Se este resultado for maior que 10, então uma outra função deve ser invocada. Esta nova função pegará o total da soma e diminuirá 2. Depois será exibido os dois resultados. Mas quando executo o código o primeiro resultado retorna como “undefined” e o segundo como “NaN”. Alguém pode me ajudar a resolver este problema? O código está logo abaixo. Muito obrigado pela colaboração de todos. Um forte abraço.
var nUm = parseInt(prompt("Digite um número qualquer"));
var nDois = parseInt(prompt("Digite outro número qualquer"));
function soma() {
var total = nUm + nDois;
if (total > 10) {
diminui.call(total);
} else {
return total;
}
}
function diminui(total) {
var totDois = total - 2;
return totDois;
}
alert(soma());
alert(diminui());
1 curtida
Fala amigão blz?
Cara vamos lá. Se você está chamando da funcao soma a funcao diminui sem utilizar a palavra chave return ela da erro, pois a funcao diminui irá retornar algo, mas irá retornar algo a funcao soma … E o que a funcao soma faz com esse retorno? Nada! undefined!
Basta adicionar a palavra chave return e remover o .call.
Dei uma limpada no seu código veja se ficou melhor … agora funciona!
Antes de mandar o código vamos ver se eu entendi:
"Seu javascript pede 2 números inteiros. quando você pedir pelo alert o resultado da função soma ele deverá: Somar ambos os numeros recebidos, caso a soma ultrapasse o valor de 10 ela deverá subtrair 2. Caso contrário simplesmente mostre a soma … É isso? Se sim segue abaixo seu código:
var nUm = parseInt(prompt("Digite um número qualquer"));
var nDois = parseInt(prompt("Digite outro número qualquer"));
function soma() {
var total = nUm + nDois;
if (total > 10) {
return diminui(total);
} else {
return total;
}
}
function diminui(total) {
return total - 2;
}
alert(soma());
Espero que te ajude!
Abraços!!!
2 curtidas
Muito obrigado pela ajuda, era disto que eu estava precisando, mas não sabia como uma função poderia chamar outra. Mas uma vez, muito obrigado pela ajuda. Um forte abraço.
Meu código estava dando errado por falta do return. Obrigado