Parece obvio, pero digamos que tenemos 2 matrices y quiero empujar algunos objetos dentro si cierta condición es cierta. En términos generales, sería mejor así:
let arr1 = []; let arr2 = []; if(someCond){ for(let i=0;i<5;i++){ arr1.push(i) } } else{ for(let i=0;i<5;i++){ arr2.push(i) } }o así:
let arr1 = []; let arr2 = []; for(let i=0;i<5;i++){ if(cond) arr1.push(i) else arr2.push(i) }Creo que la segunda opción parece más corta, pero tal vez sea peor en rendimiento.
El mejor es:
const arr1 = []; const arr2 = []; const cond = Math.random() > 0.5; const arr = cond ? arr1 : arr2; for(let i = 0; i < 5; ++i){ arr.push(i); } console.log('arr1', arr1); console.log('arr2', arr2);Es mejor ejecutar el ciclo una vez que la longitud de la matriz, por lo que esta es la mejor de sus opciones
if(someCond){ for(let i=0;i<5;i++){ arr1.push(i) } } else{ for(let i=0;i<5;i++){ arr2.push(i) } }Porque solo ejecutas el condicional una vez entonces ...
Como ruta de procesamiento de este código, obtengo lo siguiente
Para cada elemento de la matriz, debo verificar la condición
O no la primera opción, para esta condición, debo hacer esto, de lo contrario, haz eso con cada elemento.
La primera opción es mejor en rendimiento, pero, a menos que esté trabajando con BigData, no creo que esto influya en el procesamiento, ya que ambas son instrucciones simples para procesar.
Esto, por supuesto, depende de la cantidad de elementos que esté repitiendo y de la complejidad del condicional.
Si usa una función en la condición, usará más memoria, por lo que la primera opción será mejor.
Si su condición es simple y su colección de artículos no es demasiado grande, puede usar cualquiera sin problemas.