Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

264
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda