Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Números negativos

Eu tive alguns problemas com relação aos números negativos. Diferente do instrutor, meu projeto não reconhecia os números negativos com números mas como strings. Então fiz dois tratamentos: o 1º para mostrar o número corretamente na tela, tanto se você começar com "menos" quanto caso você diga "negativo" (exemplos: "menos um" e "um negativo". E o 2º para a validação correta do número não como uma string pois caia no if de "diga um número".

1º tratamento

function showGuess(guess) {
  guessElement.innerHTML = `
    <div>Você disse:</div>
    <span class="box">${formarNegativeNumber(guess)}</span>
  `;
}

function formarNegativeNumber(number) {
  if (number[0] === "-") {
    return `-${onlyNumbers(number)}`;
  }

  if (number.substring(number.lastIndexOf(" ") + 1) === "negativo") {
    return `-${onlyNumbers(number)}`;
  }

  return number;
}

function onlyNumbers(string) {
  const numsStr = string.replace(/[^0-9]/g, '');
  return parseInt(numsStr);
}

2º Tratamento

  if (guessRangeValidation(number) || checkNegativeNumber(guess)) {
    guessElement.innerHTML += `<div>Valor inaválido: fale um número entre ${smaller} e ${bigger}.</div>`;
    return;
  }
  
  function checkNegativeNumber(number) {
  const minus = number[0] === "-";
  const negative = number.substring(number.lastIndexOf(" ") + 1) === "negativo";
  return minus || negative;
}

Qualquer sugestão que queira deixar é válida :D

1 resposta
solução!

Olá Lucas, tudo bem?

A solução que você encontrou para mostrar o número corretamente na tela e validar o número como um número e não uma string, foi muito interessante!

Agradecemos por compartilhar sua experiência e contribuir com a comunidade

Um abraço e bons estudos.