Um dos incômodos do JavaScript da velha guarda eram os efeitos colaterais; então Array.prototype obteve métodos como filter, map, e forEach para que não precisássemos queimar variáveis antes de fazer um loop sobre os valores. Não consigo explicar o quanto estou feliz com o fato de a linguagem JavaScript continuar a evoluir.


De vez em quando, preciso filtrar uma matriz por não seu valor original, mas sim um novo valor, então eu uso map:



myArray.map(item => {
    // Do whatever processing...

    // If we don't care about the item, return false or null or undefined
    return false;
});


Embora eu obtenha os novos valores que desejo, às vezes, se uma iteração retorna um resultado que não quero, retorno null ou false, o que é ótimo, mas fico com um monte de itens inúteis na matriz resultante. A próxima etapa é usar o filtro, e nesse caso eu poderia fazer isso:



myArray
    .map(item => {
        // ...
    })
    // Get rid of bad values
    .filter(item => item);


Como os valores que não quero não são verdadeiros, o filtro acima remove esses itens ruins. O senhor sabia que há uma maneira mais clara com o Boolean?



myArray
    .map(item => {
        // ...
    })
    // Get rid of bad values
    .filter(Boolean);


Se o valor não for verdadeiro, o item é filtrado e eu fico apenas com os itens que quero!

  • Navegação espacial

    A navegação espacial é a capacidade de navegar para elementos focalizáveis com base em sua posição em um determinado espaço. A navegação espacial é imprescindível quando o seu site ou aplicativo precisa responder às teclas de seta, um exemplo perfeito é uma televisão com controle remoto direcional. Os aplicativos Firefox OS TV são simplesmente…

  • Crie uma apresentação de slides simples usando o MooTools, Parte III: Criando uma classe