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

130
Vistas
Crear palabras aleatorias de N dígitos a partir de una matriz

Quiero crear una palabra aleatoria de 4 dígitos a partir de esta matriz.

 const words = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k'];

para eso codifiqué así ...

 const word = ( words[Math.floor(Math.random() * 9)] + words[Math.floor(Math.random() * 9)] + words[Math.floor(Math.random() * 9)] + words[Math.floor(Math.random() * 9)] ); console.log(word) // afab

Para esto, necesito repetir las words[Math.floor(Math.random() * 9)] nuevamente si necesito 6 dígitos o 10 dígitos.

¿Cómo puedo escribir el código usando una variable que es fácil de generar palabras aleatorias de N dígitos sin repetir el código?

Gracias por adelantado

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede hacer uso de Array.from y obtener la palabra de length de longitud

 Array.from({ length }, () => arr[Math.floor(Math.random() * arr.length)]).join("")

Crea una longitud dinámica usando

 arr.length // instead of 9(Don't hardcode) 

 const words = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "k"]; function generateRandomWord(arr, length) { return Array .from({ length },() => arr[Math.floor(Math.random() * arr.length)]) .join(""); } console.log(generateRandomWord(words, 4)); console.log(generateRandomWord(words, 8)); console.log(generateRandomWord(words, 12));

about 4 years ago · Juan Pablo Isaza Denunciar

0

 function recursiveRandomWord(words, len) { if (len == 0) { return ''; } return words[Math.floor(Math.random() * words.length)] + recursiveRandomWord(words, len - 1); } const words = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k']; for (let i = 0; i < 10; i++) { let length = Math.floor(Math.random() * 5) + 4; console.log(`Length ${length}, Word: ${recursiveRandomWord(words, length)}`); }

 const words = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k']; function randomWord(arr, len) { let result = []; for (let i = 0; i < len; i++) { result.push( words[ Math.floor(Math.random() * words.length) ] ); } return result.join(''); } for (let i = 0; i < 10; i++) { let length = Math.floor(Math.random() * 5) + 4; console.log(`Length ${length}, Word: ${randomWord(words, length)}`); }

Nota: funcionará en navegadores más antiguos, por ejemplo: Internet Explorer 6

about 4 years ago · Juan Pablo Isaza Denunciar

0

Este es un enfoque funcional. Primero llama a pasar la matriz de destino para elegir elementos, luego la siguiente llamada es la cantidad.

 const numbers = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']; const words = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k']; function randomNum(target) { const newRandomNum = (num = 1, val = "") => { val += (target[Math.floor(Math.random() * 9)]) if (num === 1) return val; return newRandomNum(--num, val); } return newRandomNum; } console.log(randomNum(numbers)(5)); console.log(randomNum(numbers)(10)); console.log(randomNum(words)(5)); console.log(randomNum(words)(10));

Una mejora que podría hacer es verificar el tipo de matriz de destino, luego usar += para cadenas y otro método para números, ya que no desea agregarlos.

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