Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

234
Vistas
Cómo crear un número único y aleatorio a partir de una matriz en Javascript

Soy un súper principiante en JS. Intento crear una forma de generar un número único aleatorio (entre 0 y 10) haciendo clic en un botón. Quiero que este número se elimine de la matriz después de aparecer.

Gracias 🙏🏻

 const btn = document.getElementById("btn"); const showNumber = document.querySelector("h2"); let allNumbers = []; for (var i =1; i <= 10; i++){ allNumbers.push(i); } const randomNumber = btn.addEventListener('click',()=> { let n = Math.floor(Math.random()*allNumbers.length+1); showNumber.innerText = n; }); if(allNumbers.indexOf(n+1) === n) { allNumbers.splice(n-1,1); };
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Supongo que desea que el botón pueda funcionar varias veces y que, por lo tanto, debe poder eliminar un número de la matriz sin importar dónde se encuentre, ya que sus posiciones cambiarán a medida que se eliminen los números. Por lo tanto, tiene varios problemas:

  • El código que selecciona un número aleatorio para eliminar puede elegir un número que ya haya sido eliminado.
  • El código asume que el número está en una posición particular, lo que puede no ser cierto después de la primera eliminación.
  • El código que elimina el elemento de la matriz se encuentra actualmente fuera del detector de eventos que se invoca al hacer clic en el botón; debe moverlo dentro de la función para que funcione.

Para evitar el primer problema, en lugar de elegir un número aleatorio del 1 al 10 para eliminar, seleccione una ubicación aleatoria en la matriz:

 const index = Math.floor(Math.random() * allNumbers.length); const n = allNumbers[index];

Entonces puedes simplemente eliminar ese elemento por índice:

 allNumbers.splice(index, 1);

También tenga en cuenta que randomNumber no es útil porque addEventListener() solo devuelve undefined .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda