Intento llamar varias veces a un método que extrae un elemento de una matriz usando probabilidades.
Mi primer método (first_function) es una promesa de que, cuando se resuelva, devolverá esta matriz:
[ [ { cardName: "Energy Fire", cardRatio: 50, }, { cardName: "Energy Water", cardRatio: 50, }, ], [ { cardName: "Charizard", cardRatio: 10, }, { cardName: "Pikachu", cardRatio: 30, }, { cardName: "Rayquaza", cardRatio: 60, }, ], ];Cuando se resuelve la promesa, llamo a otro método (segunda_función):
my_promise.then((result) => { for (const position in result) { this.second_function(result[position]); } });Hay mi segundo método (segunda_función):
function second_function(pull) { var winner = Math.random() * 100; var threshold = 0; for (let i = 0; i < pull.length; i++) { threshold += pull[i].cardRatio; if (threshold > winner) { return console.log("winner", pull[i]); } } }Quiero dibujar una tarjeta aleatoria de cada matriz (es por eso que llamo varias veces a second_function en first_function) pero el problema es que solo se resuelve un sorteo (veo solo una consola.log). Sin embargo, second_function se llama varias veces como se esperaba, pero parece que el bucle for en second_function se llama solo una vez.