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

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

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 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