Programadores conhecem bem as duas estruturas que são as pilhas e as filas. Elas permitem ordenar elementos durante a espera de um tratamento. A seguir, veja que existe um meio simples de reproduzi-los em Javascript com métodos preexistentes.
O foco deste artigo são os quadros, ou seja, o Array de Javascript. Grande parte das pessoas conhece o pedaço de código descrito aqui:
ver meuQuadro = new Array(1, 2, 3, 4, 5) ;
As pilhas e as filas Javascript não são nada mais do que quadros que utilizam quatro métodos: pop(), push(), shift() e unshift().
FILO é um acrônimo inglês que significa"First In Last Out", ou seja: "primeiro a entrar, primeiro a sair".
Utilizando os dois métodos abaixo:
Evidentemente, você pode igualmente utilizar os métodos shift() e unshift() para fazer uma pilha com o início do quadro.
Exemplo de utilização de uma pilha :
meu quadro.push(6); //Adiciona-se um 6° elemento
meu quadro.pop(); // Retira-se
meu quadro.pop(); // Retira-se 5 meu quadro.push(meu quadro.pop()); // Sem efeito
/* O quadro resultante é [1|2|3|4] */
FIFO é o acrônimo significando "First In First Out", ou seja: "primeiro a entrar, primeiro a sair".
Imagine desta vez uma fila de espera em um supermercado. Você chegará na caixa em primeiro lugar, e as pessoas chegariam atrás de você. Necessariamente, você vai passar em primeiro: isto é uma fila .
Utilizaremos os dois métodos seguintes:
<ital>mais uma vez, você pode fazer uma fila invertida ao adicionar elementos no início, e retirando-os pelo fim, mas, melhor ainda é ficar o mais próximo possível da realidade.
Exemplo de utilização de uma fila :
meu quadro.push(6); // Adiciona-se um 6° elemento
meu quadro.shift(); // retira-se o 1
meu quadro.shift(); // retira-see 2
meu quadro.push(meuQuadro.shift()); // Coloca-se o primeiro elemento no fim.
/* O quadro que resulta é [4|5|6|3] */
Eles podem ser necessários para gerar os acontecimentos onKeyUp de uma input de tipo texto, substituindo aquilo que o usuário digitava por outra coisa, além de memorizar.
Com uma fila, é possível estocar rapidamente a totalidade das letras digitadas, que serão tratadas mais tarde.
Foto: © Maximilian Weisbecker - Unsplash