1
resposta

Função apresentada de Arrow de "somaNumerosPequenos" não funciona

Olá, estou testando a função apresentada, mas ela sempre entra na primeira opção do if, mesmo eu colocando números maiores que 10, segue abaixo:

const somaNumerosPequenos = (num1, num2) => { if (num1 || num2 > 10){ return num1 + num2 } else { return "somente número de 1 a 9" } } console.log(somaNumerosPequenos(12,12))

Abaixo o resultado, deveria retornar "somente número de 1 a 9", mas está somando:

Info: Start process (10:03:21) 24 Info: End process (10:03:21)

1 resposta

Boa noite Vander,

Sou Pedro, talvez eu possa te ajudar.... No código que você postou e provavelmente o do exemplo que passaram tem 3 erros.

Eles ficam no IF dentro da Arrow Function na condicional IF (num1 || num2 > 10), tem um erro na validação do operador >, outro erro na validação do OR (||) e outro erro na validação do parâmetro num1. Dessa forma você está checando se o num1 é booleano TRUE OU se o num2 é maior que 10.

O correto seria da seguinte forma: IF (num1 < 10 && num2 < 10) assim você está checando os dois parâmetros se eles são menores do que 10... Veja que primeiro eu checo o num1 menor que 10 E num2 menor que 10 também.

Ou seja, o código completo e correto fica assim:

const somaNumerosPequenos = (num1, num2) => { 
    if (num1 < 10 && num2 < 10) { 
        return num1 + num2 
    } else { 
        return "somente números de 1 a 9"
    } 
}

console.log(somaNumerosPequenos(10,9)); // Mensagem: somente números de 1 a 9
console.log(somaNumerosPequenos(9,9)); // Soma correta: 18