Muito se falou sobre o Array.prototype.flat durante seus estágios iniciais, começando apenas pelo nome. Muitos desenvolvedores preferiam o nome flatten mas a especificação era diferente da implementação do MooTools. O MooTools achatava recursivamente um array, mas a nova especificação oficial flat tem como padrão um nível de achatamento,.

A implementação atual do Array.prototype.flat é:

[1, 2, [3], [[4]]].flat(/* depth */);
// [1,2,3,[4]]

.flat por padrão, só achata as matrizes em um nível, mas e se o senhor quiser uma matriz realmente achatada? O senhor pode usar o Infinity e flat‘s depth para que isso aconteça:

[1, 2, [3], [[4]], [[[[[[6]]]]]]].flat(Infinity);
// [1,2,3,4,6]

Acho que o nome do método é um pouco enganoso, mas entendo por que eles optaram por um único nível. O nome do método smush foi lançado, o que teria sido o pior nome de método desde que o stringify!

  • Filtros CSS

    O suporte a filtros CSS foi lançado recentemente nos nightlies do WebKit. Filtros CSS fornecem um método para modificar a renderização de um elemento DOM básico, imagem ou vídeo. Os filtros CSS permitem desfocar, distorcer e modificar a intensidade da cor dos elementos. Vamos lá…

  • Expressões regulares para o resto de nós

    Mais cedo ou mais tarde, o senhor se deparará com uma expressão regular. Com sua sintaxe enigmática, documentação confusa e enorme curva de aprendizado, a maioria dos desenvolvedores se contenta em copiá-las e colá-las do StackOverflow e torcer para que funcionem. Mas e se o senhor pudesse decodificar as expressões regulares e aproveitar seu poder? Em…

  • Select Dropdowns, MooTools e CSS Print

    Sei que já falei sobre isso várias vezes, mas é importante aprimorar as páginas para impressão. O senhor pode fazer algumas coisas usando CSS simples, mas o post de hoje apresenta MooTools e jQuery. Pegaremos as opções de um elemento SELECT e geraremos…

  • Usando o TogetherJS