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!
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…
Criar um pacote de download usando o MooTools Moousture
Zohaib Sibt-e-Hassan lançou recentemente uma excelente biblioteca de gestos de mouse para o MooTools chamada Moousture. O Moousture permite que o senhor acione a funcionalidade movendo o mouse em padrões personalizados especificados. Para ilustrar o valor do Moousture, criei um construtor de download de imagens usando o Moousture e PHP. O XHTML Fornecemos…