Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

254
Views
¿Cómo puedo hacer que los objetos en mi matriz solo aparezcan una vez? JavaScript

Hola, estoy luchando y esperaba que tal vez alguien aquí pudiera ayudar. Estoy creando una aplicación web que usa una gran variedad de objetos que se parece a esto:

 var arr = [ { prop1 : "foo", prop2 : ["foo1", "foo2", "foo3", "foo4"], prop3 : "foo5", prop4 : "foo6", }, { prop1 : "bar", prop2 : ["bar1", "bar2", "bar3", "bar4"], prop3 : "bar5", prop4 : "bar6", }, { prop1 : "something", prop2 : ["something1", "something2", "something3", "something4"], prop3 : "something5", prop4 : "something6", } ]

La matriz es mucho más grande que eso, pero entiendes la idea. Quiero mostrar solo 5 objetos de la matriz al azar cada vez que se ejecuta el código, lo cual hice así:

 randomArr = arr.sort(() => Math.random() - .5); spliceArr = randomArr.splice(5);

Funciona, pero a veces muestra objetos de la matriz principal varias veces. ¿Cómo puedo escribir el código para que devuelva objetos de la matriz solo una vez?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede resolver esto creando una matriz de índices aleatorios únicos y luego devolver una matriz de objetos que correspondan a esos índices aleatorios.

Se puede usar un conjunto para garantizar que todos los índices generados sean únicos.

 function getNRandomObjects(objectArray,numberOfObjects) { // use a set to ensure at most only one instance of an index is // generated const indices = new Set(); while(indices.size < numberOfObjects) { //generate a random index and add it to the set indices.add( Math.floor(Math.random() * objectArray.length)); } // convert the set of indices into an array, // then map each index to the object that corresponds // to that index. return Array.from(indices).map(i=>objectArray[i]); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!