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

340
Vistas
generar un número aleatorio de 4 dígitos usando una subcadena

Estoy tratando de ejecutar el siguiente código:

 var a = Math.floor(100000 + Math.random() * 900000); a = a.substring(-2);

Recibo un error como que undefined is not a function en la línea 2, pero cuando trato de hacer alert(a) , tiene algo. ¿Que esta mal aquí?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Eso es porque a es un número, no una cadena. Lo que probablemente quieras hacer es algo como esto:

 var val = Math.floor(1000 + Math.random() * 9000); console.log(val);

  • Math.random() generará un número de punto flotante en el rango [0, 1) (esto no es un error tipográfico, es una notación matemática estándar para mostrar que 1 está excluido del rango).
  • Multiplicar por 9000 da como resultado un rango de [0, 9000).
  • Sumar 1000 da como resultado un rango de [1000, 10000).
  • Flooring corta el valor decimal para darle un número entero. Tenga en cuenta que no se redondea.

Caso general

Si desea generar un número entero en el rango [x, y), puede usar el siguiente código:

 Math.floor(x + (y - x) * Math.random());
over 4 years ago · Santiago Trujillo Denunciar

0

Esto generará un número aleatorio de 4 dígitos (0000-9999) usando una subcadena:

 var seq = (Math.floor(Math.random() * 10000) + 10000).toString().substring(1); console.log(seq);
over 4 years ago · Santiago Trujillo Denunciar

0

Adapté Balajis para hacerlo inmutable y funcional.

Debido a que esto no usa matemáticas, puede usar alfileres alfanuméricos, emojis, muy largos, etc.

 const getRandomPin = (chars, len)=>[...Array(len)].map( (i)=>chars[Math.floor(Math.random()*chars.length)] ).join(''); //use it like this getRandomPin('0123456789',4);
over 4 years ago · Santiago Trujillo 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