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

235
Views
Cómo usar la salida del indicador como variable global en otra función

Siguiendo Odin Project Rock Paper Scissors : intentar usar una entrada de solicitud JS en otra función para averiguar quién ganó un juego.

Me he quitado mucho para hacer que la pregunta/respuesta sea lo más reutilizable posible para otros.

Tengo 2 variables globales establecidas:

 let computerSelection; let playerSelection;

Tengo una función (playRound) que calcula el resultado de una ronda (quién ganó) que sé que funciona cuando se codifica la player selection (ya que probé la consola registrando la salida con éxito).

Sin embargo, quiero reemplazar la codificación fija de la selección del jugador para usar la entrada de un aviso. Pero cuando hago esto, no está configurando playerSelection correctamente, ya que solo obtengo ' undefined ' cuando registro playRound() en la consola.

Mi mensaje:

 function showModal() { selection = window.prompt('Rock, paper or scissors?').toLowerCase(); playerSelection=selection }

Sé que esto funciona cuando registro en la consola la selección del playerSelection con un botón diferente como este:

 function print() { console.log(playerSelection); }

sin embargo, cuando trato de usarlo en mi función playRound() , ¿se muestra undefined ?

 function playRound(playerSelection, computerSelection) { computerSelection = computerPlay(); playerSelection = showModal(playerSelection);

También he intentado simplemente usar

 playerSelection = playerSelection

y también

 playerSelection = showModal()

como pensé, seguramente la variable global se establece una vez que el modal está completo, pero eso también está devolviendo indefinido.

No entiendo por qué esto no funciona en la función playRound , ya que parece que el modal/prompt está configurando la variable playerSelection (cuando playerSelection después de hacerlo (usando mi función de print() ?)

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tienes un problema con el alcance aquí. Debido a que tiene un parámetro llamado playerSelection que se pasa a la función, está configurando esa variable y no su variable global. Puedes resolver esto así:

 let playerSelection; let computerSelection; function playRound() { computerSelection = computerPlay(); playerSelection = showModal(playerSelection); } function showModal() { return window.prompt('Rock, paper or scissors?').toLowerCase(); } playRound();

Tenga en cuenta que también debe devolver el resultado de solicitud de showModal, una función sin una declaración de devolución siempre devolverá undefined.

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!