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

169
Views
¿Cómo puedo acortar este código repetitivo JS?

Acabo de escribir este fragmento de código que hace lo que se supone que debe hacer, aunque es muy complicado y bastante repetitivo y me pregunto cómo puedo hacerlo mucho más breve y conciso.

 if(id==1 && player == "playerOne"){ Object.assign(playerOne, fighters[0]) }else if(id==1 && player =="playerTwo"){ Object.assign(playerTwo, fighters[0]) } if(id==2 && player == "playerOne"){ Object.assign(playerOne, fighters[1]) }else if(id==2 && player =="playerTwo"){ Object.assign(playerTwo, fighters[1]) } if(id==3 && player == "playerOne"){ Object.assign(playerOne, fighters[2]) }else if(id==3 && player =="playerTwo"){ Object.assign(playerTwo, fighters[2]) } if(id==4 && player == "playerOne"){ Object.assign(playerOne, fighters[3]) }else if(id==4 && player =="playerTwo"){ Object.assign(playerTwo, fighters[3]) } if(id==5 && player == "playerOne"){ Object.assign(playerOne, fighters[4]) }else if(id==5 && player =="playerTwo"){ Object.assign(playerTwo, fighters[4]) } if(id==6 && player == "playerOne"){ Object.assign(playerOne, fighters[5]) }else if(id==6 && player =="playerTwo"){ Object.assign(playerTwo, fighters[5]) } if(id==7 && player == "playerOne"){ Object.assign(playerOne, fighters[6]) }else if(id==7 && player =="playerTwo"){ Object.assign(playerTwo, fighters[6]) } if(id==8 && player == "playerOne"){ Object.assign(playerOne, fighters[7]) }else if(id==8 && player =="playerTwo"){ Object.assign(playerTwo, fighters[7]) } if(id==9 && player == "playerOne"){ Object.assign(playerOne, fighters[8]) }else if(id==9 && player =="playerTwo"){ Object.assign(playerTwo, fighters[8]) }

¡Gracias de antemano!

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

0

Asumiendo

a) no hay más de dos jugadores

b) no le importa que este código maneje id < 1 e id > 9

Me parece que podrías reducir esto a una sola línea.

 Object.assign(player == "playerOne" ? playerOne : playerTwo, fighters[id - 1])
about 4 years ago · Juan Pablo Isaza Report

0

Según las suposiciones de su ejemplo, esa id debe estar entre 1 y 9 y el player puede ser cualquier cosa, pero debe ser playerOne o playerTwo :

 for (var i = 1; i < 10; i++) { if (id == i) { if(player == "playerOne"){ Object.assign(playerOne, fighters[i - 1]); } else if (player == "playerTwo") { Object.assign(playerTwo, fighters[i - 1]); } } }
about 4 years ago · Juan Pablo Isaza Report

0

¿Qué pasa si lo reescribes para que sea algo similar a

 if (player == "playerOne") { p = playerOne } else if (player =="playerTwo") { p = playerTwo } Object.assign(p, fighters[id - 1])
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!