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

81
Vistas
Creación de una matriz de longitud fija y objetos únicos en javascript y MongoDB

Estoy tratando de crear una matriz de 12 productos únicos. Estos productos se seleccionan de una lista de productos que se recuperan de mi base de datos MONGODB. Puedo crear la matriz bastante bien, pero parece que no puedo hacer que la longitud de la matriz sea 12 cada vez. Necesito que la longitud mínima de la matriz sea 12 y la longitud máxima de la matriz también sea 12.

Este es mi código a continuación y cada vez que ejecuto este código, randomProducts.length suele tener una longitud aleatoria, en lugar de 12.

 Products.find({}).limit(12).exec(function (err, randProducts) { var randomProducts = [] for (let i = 0; i < randProducts.length; i++) { var rand = Math.floor(Math.random() * (randProducts.length - 0) + 0); if (randomProducts.includes(randProducts[rand]) == false) { randomProducts.push(randProducts[rand]) } } console.log(randomProducts.length) })
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Está comenzando con un conjunto inicial de 12 productos debido a la .limit(12) de su consulta MongoDB.

La selección de 12 elementos aleatorios de un conjunto de 12 elementos también se denomina barajar o aleatorizar la matriz. La reproducción aleatoria de una matriz se ha explicado varias veces: ¿Cómo aleatorizar (reorganizar) una matriz de JavaScript?

Para elegir 12 elementos aleatorios de una matriz más grande, eche un vistazo aquí: ¿Cómo obtener una cantidad de elementos aleatorios de una matriz?

Su código tiene el problema de que está intentando 12 veces elegir un producto al azar. Pero si el producto ya está recogido (que será en muchos casos) no haces nada. Así que tendrías que tener mucha suerte para obtener los 12 productos en un orden aleatorio.

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