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

178
Views
Cómo agregar peso del artículo para aleatorizar

¡Estoy aprendiendo a codificar Javascript y actualmente estoy probando esto! Tengo un objeto de 'jugador' y con cofreRecompensas. En el cofre, hay algunos elementos que se entregarán al azar. ¿Cómo puedo agregar peso a diferentes elementos en la matriz para que el elemento 'oro' no se dé con tanta frecuencia (elemento raro)? También estoy confundido con la salida, está imprimiendo sin definir pero no entiendo de dónde viene.

 const lootBoxA = ['gold', 'silver', 'shirt', 'shorts']; const player = { chestReward: lootBoxA, currentReward(){ while (this.currentReward){ this.currentReward = this.chestReward[Math.floor(Math.random() * 4)]; console.log(this.currentReward); if (this.currentReward === 'gold'){ console.log('Bonus!'); }break; } } } console.log(player.currentReward()); /*Outputs gold Bonus! undefined*/
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Necesitará más información que solo el nombre de sus artículos. Entonces, en lugar de representar sus elementos con string , puede usar objetos:

 const lootBoxA = [ { name: 'gold', probability: 0.1 }, { name: 'silver', probability: 0.3 }, { name: 'shirt', probability: 0.7 }, { name: 'shorts', probability: 0.5 } ];

De esa manera, le das a cada artículo una probabilidad de ser elegido.

Entonces, no veo ninguna razón por la que la recompensa actual de su jugador deba ser una función ( currentReward() ). Puede ser solo una propiedad, por lo que tendría algo así:

 const player = { name: 'Henry', // for example currentReward: null // the player starts without reward }

Puede tener una función para elegir una recompensa para su jugador. Tomará un "lootBox" y elegirá un artículo con la probabilidad correcta:

 function pickItemFromLootBox(lootBox) { const randomIndex = Math.floor(Math.random() * lootBox.length); const randomNumber = Math.random(); // between 0 and 1 const selectedLootBoxItem = lootBox[randomIndex]; if (selectedLootBoxItem.probability >= randomNumber) { return selectedLootBoxItem; } else { return null; // no item selected // or if you want to always select an item, replace the above line with this : // return pickItemFromLootBox(lootBox); } }

Ahora que tiene un jugador, un botín y una función para elegir un elemento del botín, puede hacer lo que quiera:

 player.currentReward = pickItemFromLootBox(lootBoxA); if (player.currentReward !== null && player.currentReward.name === 'gold') { console.log('Bonus !') }
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!