Cuando procesamos elementos utilizando alguno de los ciclos en javascript, bajo ciertos escenarios se requiere omitir algunos elementos y aquí por lo general tenemos dos opciones:
- Opción 1: Aplicar un filter() previo a la iteración y luego iterar sobre el conjunto ya validado
- Opción 2: En la misma iteración evaluar la condición y omitir el ítem y pasar al siguiente
Aplicando filter()
// Omitiendo los items iguales a 2
const mainFunctionWithForEach = () => {
console.log("forEach: started");
items
.filter((item) => item !== 2)
.forEach(async (item) => {
console.log(`\tEvaluate item ${item}`);
await dummyFunctionAsync();
});
console.log("forEach: ending");
};
Log de salida
forEach: started
Evaluate item 1
Evaluate item 3
Evaluate item 4
forEach: ending
forEach: aplicando return
// Omitiendo los items iguales a 2
const mainFunctionWithForEach = () => {
console.log("forEach: started");
items.forEach(async (item) => {
if (item === 2) return;
console.log(`\tEvaluate item ${item}`);
await dummyFunctionAsync();
});
console.log("forEach: ending");
};
Log de salida
forEach: started
Evaluate item 1
Evaluate item 3
Evaluate item 4
forEach: ending
forOf: aplicando continue
// Omitiendo los items iguales a 2
const mainFunctionWithForOf = async () => {
console.log("forOf: started");
let index = 0;
for (const item of items) {
index++;
if (item === 2) continue;
console.log(`\tEvaluate item ${item}`);
await dummyFunctionAsync();
}
console.log("forOf: ending");
};
Log de salida
forOf: started
Evaluate item 1
Evaluate item 3
Evaluate item 4
forOf: ending