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

196
Views
¿Cuál es la mejor manera de usar un bucle for en una instrucción if/else que realiza una tarea similar?

En el siguiente código, incluso si la instrucción if/else se evalúa como verdadera o falsa, se llama a la función doSomething() . Lo que me preguntaba es si hay una manera de refactorizar este código para que sea "DRYer". En mi código real, el cuerpo del bucle es más largo que una sola función que se llama, por lo que creo que vale la pena refactorizarlo.

 if (somethingIsTrue) { array1.forEach(val => { doSomething(val); }); } else { array2.forEach(val => { doSomething(val); }); }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

El operador condicional se puede utilizar aquí. Probablemente tampoco sea necesario el contenedor de funciones anónimas.

 (somethingIsTrue ? array1 : array2).forEach(doSomething);
about 4 years ago · Juan Pablo Isaza Report

0

Aislaría la lógica en una función común y le pasaría la matriz. La función no necesita saber sobre qué matriz se está iterando y esa lógica de decidir qué matriz se puede manejar fuera de la función.

 let somethingIsTrue = true; const mArr1 = [1, 2, 3, 4, 5]; const mArr2 = [6, 7, 8, 9, 10]; businessLogic(somethingIsTrue ? mArr1 : mArr2); somethingIsTrue = !somethingIsTrue; console.log('---------------------------'); businessLogic(somethingIsTrue ? mArr1 : mArr2); function businessLogic(mArr) { mArr.forEach(val => console.log(val)); }

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!