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

151
Vistas
¿Cómo obtengo la cantidad X de elementos únicos de una matriz?

Estoy tratando de cambiar el número X en el ciclo for según la matriz que usa esta función. La función obtiene x valores aleatorios de una matriz que luego verifica si no es el mismo valor y si no es el mismo valor, luego devuelve los 2 valores aleatorios en la matriz. Intenté hacer una declaración de cambio como esta:

 switch(this) { case array1: x = 2; break; case array2: x = 3; break; }

código

 Array.prototype.random = function () { let result = []; let bool = false; let x = 0; for (var i = 0; i < x; i++) { result.push(this[Math.floor(Math.random() * this.length)]); } while (bool == false) { if (result[0] === result[1]) { result.pop(); result.push(this[Math.floor(Math.random() * this.length)]); } else { bool = true; } } return result[0] + " + " + result[1]; }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Obtener la cantidad de elementos únicos en la matriz se parece a

 function getUniqueCount(list){ let storage={}, count=0; for(let i=0; i<list.length; i++){ if(!storage[list[i]]){ storage[list[i]]=true; count++; } } return count; }

Pero no estoy seguro de si ese número te ayudaría porque no estás diciendo lo que quieres que haga tu función.

about 4 years ago · Juan Pablo Isaza Denunciar

0

No estoy seguro de cuál se supone que es la variable x . Si solo desea devolver 2 elementos aleatorios de la matriz, no es necesaria esa variable o la matriz de result . Solo usa dos variables.

 Array.prototype.random = function() { let item1 = this[Math.floor(Math.random() * this.length)]; while (true) { let item2 = this[Math.floor(Math.random() * this.length)]; if (item2 != item1) { return item1 + " + " + item2; } } } console.log([1, 2, 3, 4, 5, 6, 7, 8].random());

about 4 years ago · Juan Pablo Isaza Denunciar

0

Elimine "()this" porque se trata de un error de sintaxis.

Estás tratando de hacer un cálculo matemático:

 Math.random() * this.length

No es un error de sintaxis:

 Math.random()this.length

Y también, tu for loop no está haciendo nada, porque i cuenta hasta x solo si i es menor que x . Pero i y x son ambos 0, por lo que no hará nada. Si está tratando de hacer que el ciclo for suba 1 vez, simplemente use "2", para obtener 2 resultados en lugar de "0".

A continuación, result.pop() simplemente devuelve el valor de "resultado".

Quita eso.

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