Actualmente estoy trabajando en un proyecto de piedra, papel o tijera, pero encontré un pequeño problema con respecto al alcance léxico (al menos, creo que ese es el problema). El juego funciona haciendo que el usuario haga clic en una de las cuatro opciones (RPS y 'borrar', que borra la consola del desarrollador). Una vez que el usuario hace clic en cualquiera de los primeros tres elementos, que forman parte de una matriz, se genera aleatoriamente un número hermano para comparar inmediatamente en la función getResults() .
HTML:
<button class = "btn" id = "rock">rock</button> <button class = "btn" id = "paper">paper</button> <button class = "btn" id = "scissors">scissors</button> <button class = "btn" id = "clear">clear</button>JavaScript:
const say = (word) => {console.log(word)}; const rps = { choiceStack: ["rock", "paper", "scissors"], rMap: [ ["t", "u", "c"], ["c", "t", "u"], ["u", "c", "t"] ], //Trying to figure out how to carry-on the user's value from getResults() res: { get "t" () {say("draw")}, get "u" () {say(`user chose: ${user} you win`)}, get "c" () {say(`computer chose: ${comp} you lose`)}, } }; const button = document.getElementsByClassName("btn"), arrBtn = Array.from(button); let userInput = arrBtn.forEach(list => { list.addEventListener('click', e => { list.id === "clear" ? console.clear() : getResults(arrBtn.indexOf(list), Math.floor(Math.random() * 3)) }) }); //Is there a way to enter the user's input into rps.res methods? function getResults(user, comp) { say(rps.res[rps.rMap[user][comp]]); El problema al que me enfrento actualmente es extraer ambos parámetros que estaban dentro de getResults() en el objeto rps (específicamente la cadena dentro de rps.res , si eso tiene sentido). Si eso es posible, ¿hay un término adecuado que se use para situaciones como esta?