Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

JavaScript Números en JavaScript El Objeto Math Desafío de números aleatorios - Solución de dos números

Andrew Whatmore
sello-máscara
.a{fill-rule:evenodd;}techdegree
Andrew Whatmore
JavaScript Full Stack Estudiante de Techdegree 11,380 Puntos

Mi solución - permite al usuario ingresar en orden inverso

Una solución que permite al usuario ingresar los números en orden inverso, es decir, el número más alto primero.

En lugar de proporcionar un error si el primer número es el más alto, calculará el mínimo y el máximo y luego generará el número aleatorio.

Dejé mi solución original para la condición, aunque es más larga que las proporcionadas por Treehouse.

Agregar a una página usando textContent es más seguro que innerHTML según MDN.

// Recopilar entrada de un usuario y convertir la entrada en un número
const userNumber1 = parseInt(prompt('Ingresa un número'));
const userNumber2 = parseInt(prompt('Ingresa otro número'));

// Crear variables mín y máx
let mínimo;
let maximum;

// asignar el mínimo y el máximo
if (userNumber2 > userNumber1) {
  mínimo = userNumber1;
  maximum = userNumber2;
} else {
  mínimo = userNumber2;
  maximum = userNumber1;
}

// Crear un div para mostrar el mensaje más tarde
let div = documento.createElement(div);

// si mínimo y máximo son ambos números que no son 0 O mínimo es 0 (lo que significa que solo se excluyen NaN)
if ((mínimo && maximum) || (mínimo === 0)) {
  // Usar Math.random() y el número del usuario para generar un número aleatorio
  const randomNumber = Math.floor(Math.aleatorio() * ((maximum - mínimo) + 1) + mínimo);
  div.textContent = `${randomNumber} es un número aleatorio entre ${mínimo} y ${maximum}`;
  }
else {
  div.textContent = `Debes proporcionar un número. Por favor, intenta de nuevo.`;
}

// agregar el div de mensaje a la sección <main> de la página
documento.querySelector('main').appendChild(div);

2 Respuestas

Steven Parker
Steven Parker
244 163 puntos

Si observas otras publicaciones sobre este video encontrarás varias mejoras propuestas, pero la autocorrección es una de las mejores. Y tienes toda la razón sobre la seguridad mejorada de textContent cuando las características HTML no son necesarias.

Dado que las tareas del espacio de trabajo generalmente son justas para ilustrar los principios de la lección, sin duda encontrarás muchas oportunidades para expandir y mejorar los proyectos de la lección.

¡Buen trabajo! :+1:

Andrew Whatmore
sello-máscara
.a{fill-rule:evenodd;}techdegree
Andrew Whatmore
JavaScript Full Stack Estudiante de Techdegree 11,380 Puntos

Gracias Steven.

Hay un caso en el que mi condición no funciona: si se ingresa un número que no es un número primero seguido de 0, intentará crear el número aleatorio usando NaN. La condición if (minimum === 0) no es lo suficientemente rigurosa.

Así que es mejor usar una de las soluciones proporcionadas que sí funcionan:

if ( lowNumber >= 0 && highNumber ) {

// ...o...

if ( isNaN(lowNumber) || isNaN(highNumber) ) {