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

156
Views
¿Cuál es el propósito de restar de Math.random?

Estoy revisando javascript.info y haciendo las tareas de práctica para Array Methods. Este es "Shuffle an array" y las instrucciones son:

Escribe la función shuffle(array) que baraja (reordena aleatoriamente) los elementos de la matriz.

No pude descifrarlo, así que lo busqué, pero ahora estoy luchando por entenderlo. ¿Qué hace el ".5 -" en la línea .5 - Math.random ?

 let arr = [1, 2, 3]; function shuffle(array) { return arr.sort((a, b) => .5 - Math.random()) } console.log(shuffle(arr))
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La devolución de llamada .sort sobre los elementos de la matriz y los ordenará según el valor devuelto por la devolución de llamada. Si se devuelve un número negativo, a se ordenará antes que b ; si se devuelve un número positivo, b se ordenará antes que a .

Math.random() devuelve un número entre 0 y 1. Si se resta de 0,5, obtienes un número aleatorio entre -0,5 y +0,5. Así que haciendo

 (a, b) => .5 - Math.random()

es una forma de hacer que la devolución de llamada devuelva un número positivo el 50 % de las veces y un número negativo el 50 % de las veces, y barajará aleatoriamente la matriz hasta cierto punto .

Dicho esto, "ordenar" de esta manera producirá resultados sesgados . Utilice un algoritmo mejor .

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!