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

120
Vistas
¿Cómo se puede acceder al elemento relacionado desde una segunda matriz si solo se tiene el elemento elegido al azar de la primera matriz?

Básicamente, tengo dos matrices de elementos de matriz relacionados, donde un elemento se elige al azar.

Quiero imprimir el elemento relacionado de la segunda matriz. Digamos que uno tiene una matriz de nombres de trabajo y se ve así:

 const jobNames = ["Builder", "Doctor", "Vet"];

Luego, uno elige un nombre de trabajo aleatorio como ese:

 var randomJobName = jobNames[ Math.floor(Math.random() * jobNames.length) ];

Ahora uno tiene otra matriz que, con cada elemento, presenta la descripción de su nombre de trabajo relacionado.

¿Cómo se puede acceder al elemento relacionado desde la segunda matriz si solo se tiene el elemento elegido al azar de la primera matriz?

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

0

Si los nombres de los trabajos y las descripciones de los trabajos se combinan, me pregunto por qué están en dos matrices diferentes. Este es un caso de uso perfecto para Objetos. yo lo estructuraria asi

 const jobs = [ {name: "Builder", description: "Builds Stuff"}, {name: "Doctor", description: "Heals Stuff"}, {name: "Vet", description: "Heals Stuff but for animals."} ]

Usando la desestructuración de objetos para acceder a los valores:

 const {name, description} = jobs[Math.floor(Math.random() * jobNames.length)] alert(`Found job: ${name} who ${description}`)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay básicamente 3 enfoques diferentes.

La más fácil es, como ya sugirió VLAZ , obtener un índice aleatorio una vez y acceder a ambos elementos, cada uno de su matriz mediante este índice aleatorio.

 const jobNames = ['Builder', 'Doctor', 'Vet']; const jobDescriptions = [ 'creates/builds things/stuff.', 'tries fixing human health issues.', 'does fix animal health issues.', ]; const randomIdx = Math.floor(Math.random() * jobNames.length); const jobName = jobNames[randomIdx]; const jobDescription = jobDescriptions[randomIdx]; console.log({ jobName, jobDescription });
 .as-console-wrapper { min-height: 100%!important; top: 0; }

En caso de que el OP no tenga la posibilidad de usar un solo índice aleatorio a la vez y, por lo tanto, se vea obligado a trabajar con el nombre del trabajo ya elegido al azar, entonces el OP necesita encontrar el índice de este mismo nombre de trabajo desde donde el OP puede proceda con la selección de la descripción del trabajo relacionado...

 const jobNames = ['Builder', 'Doctor', 'Vet']; const jobDescriptions = [ 'creates/builds things/stuff.', 'tries fixing human health issues.', 'does fix animal health issues.', ]; // OP has no control about how `jobName` is/was/gets chosen. const jobName = jobNames[ Math.floor(Math.random() * jobNames.length) ]; const index = jobNames.indexOf(jobName); const jobDescription = jobDescriptions[index]; console.log({ jobName, jobDescription });
 .as-console-wrapper { min-height: 100%!important; top: 0; }

En caso de que dicha tarea deba ejecutarse con frecuencia/repetidamente y en caso de que el OP pueda cambiar el código cuando el OP esté satisfecho, un enfoque fue combinar ambas matrices en una matriz de elementos de trabajo agregados (nombre y descripción) y hacer la selección aleatoria una vez de esta nueva estructura de matriz...

 const jobNames = ['Builder', 'Doctor', 'Vet']; const jobDescriptions = [ 'creates/builds things/stuff.', 'tries fixing human health issues.', 'does fix animal health issues.', ]; const jobList = jobNames .map(function (name, idx) { const description = this[idx]; return { name, description, }; // `jobDescriptions` applied as }, jobDescriptions); // `map`'s 2nd `thisArg` argument. function getRandomArrayIndex(arr) { return Math.floor(Math.random() * arr.length); } const { name, description, } = jobList[ getRandomArrayIndex(jobList) ]; console.log({ name, description }); console.log({ jobList });
 .as-console-wrapper { min-height: 100%!important; top: 0; }

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