imagen

Javascript : omitiendo elementos en un ciclo

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