Escrevi várias postagens no blog sobre truques de JavaScript: Truques de promessa, truques de conversão de tipos, truques de propagaçãoe um uma série de outros truques de JavaScript. Recentemente, encontrei outro truque de JavaScript que me surpreendeu: como quebrar um forEach loop, compartilhado por Andrea Giammarchi!

Para quebrar a forEach em qualquer ponto, o senhor pode truncar o array do length:

const myArray = [1, 2, 3];
myArray.forEach(item => {
  // ... do some stuff
  if(someConditionIsMet) {
    // Break out of the loop by truncating array
    myArray.length = 0;
  }
})

Ao definir o length para 0, o senhor esvazia a matriz e interrompe imediatamente o forEach. É claro que, ao esvaziar o array, os dados originais são perdidos, portanto, o senhor pode querer criar um novo array ([...myArray].forEach) antes dessa operação.

Outra forma de realizar a tarefa seria lançar uma exceção:

// https://stackoverflow.com/questions/2641347/short-circuit-array-foreach-like-calling-break
let BreakException = {};

try {
  [1, 2, 3].forEach(function(el) {
    console.log(el);
    if (el === 2) throw BreakException;
  });
} catch (e) {
  if (e !== BreakException) throw e;
}

E, é claro, provavelmente haverá uma maneira melhor de obter o que o senhor deseja sem precisar desse truque, como usar .find ou .some, mas nem todo truque precisa ser uma prática recomendada!

  • Crie um efeito de logotipo brilhante com CSS
  • Animações JS responsivas e infinitamente escalonáveis

    No final de 2012, não era fácil encontrar projetos de código aberto usando requestAnimationFrame() – esse é o gancho que permite que o código Javascript seja sincronizado com o loop de pintura nativo de um navegador da Web. As animações que usam esse método podem ser executadas a 60 fps e proporcionar…